So wählen Sie in Vim zeilenweise schnell (inner) aus

8

Vim hat einige sehr nützliche Textbewegungen wie i b , , i } , usw., um schnell einen Teil des Textes auszuwählen. Aber ich brauche oft einen inneren Block im linienweisen Modus. Zum Beispiel (mit Zeilennummern):

%Vor%

Nun, wenn mein Cursor irgendwo in Zeile 2 oder 3 steht und ich v i b oder v triff > i ) , Vim wählt Zeile 2, 3 und die Leerzeichen in Zeile 4. Ich möchte nur Zeile 2 und 3. Ich habe versucht mit V i b und i ) aber sie machen dasselbe wie mit ein Kleinbuchstabe v .

Gibt es eine einfache Textbewegung oder einen anderen schnellen Weg, um einen inneren Block im linienweisen Modus auszuwählen?

    
Sander Marechal 19.07.2011, 10:17
quelle

3 Antworten

2

Am Ende habe ich einen einfacheren Weg gefunden: vim-indent-object erlaubt es mir Wählen Sie anhand der Einrückungsebene Textbereiche aus. Das ist ziemlich genau dasselbe, wenn man bedenkt, dass mein Quellcode immer gut eingerückt ist.

Wenn ich nun in meinem Beispiel in Zeile 2 oder 3 bin, kann ich einfach v i i drücken, um die innere Einrückung auszuwählen Objekt, und es wählt Zeile 2 und 3. Groovy!

    
Sander Marechal 21.07.2011, 07:02
quelle
4

Ich kann Downvotes dafür bekommen, aber ich würde einfach die Anzahl der Zeilen, die ich brauche, nach oben oder unten bewegen, wie V 3 j oder V 2 k , solange es bekannt ist.

Ich habe eine Bindung, die zwischen absoluter und relativer Nummerierung ( :set relativenumber ) wechselt, so dass sie optisch einfach zu identifizieren ist, solange sie alle auf dem Bildschirm angezeigt werden.

    
Michael Berkowski 19.07.2011 10:52
quelle
3

Ich stimme zu, dass es schön wäre, das von Ihnen beschriebene Verhalten zu haben. Wenn Sie bestimmt sind, können Sie Ihr eigenes benutzerdefiniertes Textobjekt immer mit dem textobj-user Framework von Kana rollen lassen. Ich habe damit ein Textobjekt für die Arbeit mit Ruby-Blöcken erstellt und fand es überraschend einfach zu tun.

    
nelstrom 19.07.2011 11:59
quelle