2010-02-25 27 views
22

Gibt es eine Möglichkeit, eine Auswahl von Zeilen in vim einzurücken, wie in Text-Editoren, wo wir eine Reihe von Zeilen auswählen und Tab (oder Shift-Tab) drücken, um das ausgewählte ein-/auszuziehen Linien? Ich spreche über allgemeine Einrückung und nicht im Zusammenhang mit Code-Einzug.ein paar Zeilen in VIM einrücken

+1

Ich habe einen Screencast zu diesem Thema gemacht: http://vimcasts.org/episodes/indentation-commands/ – nelstrom

+0

mögliche Duplikate von [mehrere Zeilen schnell in vi einrücken] (http://stackoverflow.com/questions/235839/ indent-multiple-lines-rapid-in-vi) – user

Antwort

16

Verwenden Sie den visuellen Modus, wie Peter es vorschlägt. Sie können auch X >> verwenden, wobei X die Anzahl der Zeilen ist, die Sie einrücken möchten. Z.B. 5 >> fügt fünf Zeilen von der aktuellen Zeile und von unten ein.

+2

Eines der Dinge, die ich aufgrund von Stack Overflow und dem Schreiben von Codebeispielen am meisten mache, ist '> G', um von der aktuellen Position bis zum Ende der Datei einzurücken. Ich schreibe generell in Ruby, also ist es eigentlich '> G.', weil Rubyists zwei Leerzeichen verwenden und SO vier, aber YMMV benötigt. –

35

Sie können eine Reihe von Linien mit Sichtlinienmodus (über Verschiebung + V), und geben Sie dann

>

und Dedent,

<

Sie können auch Fügen Sie numerische Argumente hinzu. Finden Sie heraus, dass Sie nicht genügend eingezogen haben? Hit gv, um Ihre vorherige Auswahl erneut auszuwählen.

Während im normalen Modus eingeben, ausprobieren ctrl + T oder ctrl + D oder Dedent einrücken.

+0

Sollte es nicht 'outdent' statt 'dedent' sein? –

+2

@Vinko sollte, aber ist nicht :) ein outdent ist eine rückwärtige Einrückung; Ein Gedicht ist ein zurückgezogener Einzug. vielleicht sollte es wirklich unthent sein. – Peter

+3

Sie müssen die Zeilen nicht erneut auswählen, um mehr Einzug zu erhalten. Verwenden Sie einfach den Punktbefehl:> ... wird viermal eingezogen. –

3

Wie von den anderen Antworten vorgeschlagen, können Sie > verwenden. Alternativ können Sie auch automatisch richtig Code einrücken, indem Sie den Satz von Linien im visuellen Modus Auswahl (mit Verschiebung + V) und dann = verwenden oder mit == die aktuelle Zeile einrücken.

8

Ich verwende die folgenden Zuordnungen einzurücken/Unindent:

vmap <TAB> >gv 
vmap <S-TAB> <gv 

Verwenden TAB einrücken und shift-TAB Die visuell ausgewählten Zeilen Unindent.

Wenn ein Block ausgewählt ist Vim Einrückungen/Entfällt was rechts vom Anfang der Block ist.

+0

Es funktioniert auch perfekt für mich! @ MacVim –

Verwandte Themen