2010-09-13 13 views
45

Ich habe mehrere Antworten gefunden, wie man mehrere Zeilen in vim einrücken kann, ich möchte wissen, wie man eine einzelne Zeile nimmt und es mehr als einmal einrücken. In der Tat möchte ich eine kürzere Version des folgenden Befehls: ">>>>>>>>>>" (Das ist 10 rechte Klammer "größer als" Zeichen.)Wie kann ich eine einzelne Zeile mehrfach in vi oder vim einrücken?

+10

Nun, Sie könnten '.' verwenden, um den letzten Befehl zu wiederholen und ihn auf' >> .... ' – meagar

+0

zu kürzen. Sie könnten auch' : >>>>> ' – meagar

Antwort

69

Wählen Sie was Sie wollen (in der Regel mit v oder Shift + v) dann geben Sie . Wenn Sie die gleiche Auswahl korrigieren oder wiederholen müssen, verwenden Sie gv.

+6

drücken. Warum shift + v? v allein wird gut funktionieren. – strager

+10

Nur eine Frage der Präferenz, ich mag es, die ganze Linie ausgewählt zu sehen. – ldog

11

Sie können die aktuelle Zeile auswählen, indem Sie v drücken, und dann 5> eingeben, um die aktuelle Zeile fünfmal einzurücken, was dem 10-fachen Drücken von > entspricht.

+2

Aktuelle Zeile ist 'V', nicht' v' – Daenyth

+6

Daenyth ist richtig, aber es ist strittig. Sie müssen nur im visuellen Modus sein; ob line-select oder nicht ist in diesem Fall irrelevant. – Jay

8

Indent einmal die Verwendung. um den vorherigen Befehl wiederherzustellen oder um ihn rückgängig zu machen.

9

Eine der Antworten auf "How do I indent multiple lines quickly in vi" zeigte mir einen ordentlichen Trick, um > im visuellen Modus neu zu visual-Modus neu zu wählen. In Ihrem .vimrc ...

vnoremap < <gv 
vnoremap > >gv 

Dann einfach die Linie, die ich auswählen (oder Zeilen) Sie wollen die entsprechende Richtung so oft einrücken, und drücken Sie, wie Sie wollen.

+0

Es ist ein netter Trick, wenn Sie alles im visuellen Modus tun, und ich möchte die Auswahl danach sehen, aber ich mag es zu verwenden. nach der ersten Änderung, die nur im normalen Modus ist. Ich füge das zu meinem .vimrc hinzu aber ordne sie auf und statt. – Pif

0

Von vim Hilfe: :help >

Um eine Zeile mehr ‚Einrückungstiefe der zu verschieben, verwenden visuellen Modus oder die: Befehle.

Zum Beispiel:

Vjj4>   move three lines 4 indents to the right 
    :<<<   move current line 3 indents to the left 
    :>> 5   move 5 lines 2 indents to the right 
    :5>>   move line 5 2 indents to the right 

Oder einfach, >> und den Befehl mit . im Normalmodus wiederholen.