Mit dem Cursor auf dem N
of NAME
würde ich einfach folgendes tun, ohne sich um Golf zu kümmern:
<C-v>}hhhhhhhh
Aber das Plug-in für textobj-column macht genau das, was Sie wollen. Magisch.
In Anbetracht der aktuellen Daten:
ID NAME AGE 1 Joan 29 2 Peterson 16 3 Hunt 47 4 Wenche 12 5 Kennedy 29 6 Lottie 31
Und der Cursor ist auf der N
in NAME
, wie würde ich mich über den Text markieren, so dass, wenn |
die Begrenzungszeichen des visuellen Block ist, sollte die Auswahl so sein
ID |NAME | AGE 1 |Joan | 29 2 |Peterson| 16 3 |Hunt | 47 4 |Wenche | 12 5 |Kennedy | 29 6 |Lottie | 31
Das nachgestellte Leerzeichen nach jedem Element Peterson
ist nicht unbedingt erforderlich, aber ich brauche eine schnelle Möglichkeit, um den aktuellen Block hervorzuheben, falls er vorhanden ist.
Mit dem Cursor auf dem N
of NAME
würde ich einfach folgendes tun, ohne sich um Golf zu kümmern:
<C-v>}hhhhhhhh
Aber das Plug-in für textobj-column macht genau das, was Sie wollen. Magisch.
Hier ist eine Möglichkeit, dies zu tun:
control-v
zuerst den Sichtblockiermodus2j
Sie dann zwei Zeilen zum Peterson
Eintrag eine
, um die Blockauswahl an das Ende des Wortes zu verschiebenPeterson
4j
, um die Auswahl in den letzten vier Zeilen nach unten zu verschiebenEdit: Wenn Sie wirklich darauf bestehen, "magische Zahlen" zu vermeiden, können Sie etwas wie hier beschrieben tun: https://stackoverflow.com/questions/3736678/how-do-you-select-a-whole-column-in-visual- Block-Modus
:set nosol
(damit der G
Befehl nicht zur ersten Zeile der visuellen Blockauswahl zurückkehrt)control-v
/P
(Sie sagten keine magischen Zahlen, verbieten aber nicht die Suche nach Buchstaben - wenn das Leerzeichen nicht entscheidend ist, können Sie dies ignorieren.)e
(gehe zum Ende des Wortes)G
(Blockauswahl nach unten verschieben)Weitere Tipps:
gv
v
wird für den zeichenweisen visuellen Modus und V
für zeilenweise verwendet, während control-v
wie oben für den blockweisen visuellen Modus giltNützliche Hinweise (außer Internet):
Practical Vim
von Drew Neil ist wirklich gut geschriebenEs gibt Skripts, die dies vereinfachen. Wenn Sie jedoch Raw Vim verwenden möchten, ist hier meine bekannteste Methode:
ein. Stellen Sie sicher, dass Ihre letzte Zeile der Datei mit Leerzeichen gefüllt ist, etwa wie folgt:
"______________________________________"
.
Gehen Sie dann zum ersten Buchstaben N in "Name". Hit ctrl-v, w, 999999j
und die Spalte wird ausgewählt.
Die letzte Zeile muss mit Leerzeichen gefüllt sein, falls Ihre Datei in einer neuen Zeile endet, da der visuelle Modus keine Teile der Datei auswählen kann, die noch nicht erstellt wurden. Wenn die letzte Zeile ein brauchbarer Inhalt ist, brauchen Sie dies nicht. ctrl-v+w
wählt ein Wort aus, dann 999999j
nimmt 99999 Zeilen den Cursor nach "unten" (oder weniger, wenn die Datei kleiner ist).
Hinweis: Sie werden sehen, dass dies eine vollständige Spaltenauswahl ist und die Leerzeichen sich ein wenig von dem unterscheiden, was Sie angegeben haben (aber Sie sagten, dies sei unwichtig). Soweit ich weiß, wenn Sie möchten, dass die Spalte am Ende des größten Wortes und nicht am Anfang des nächsten Worts ausgerichtet wird, müssen Sie die größte Wortgröße manuell suchen, visuell diese Länge auswählen und dann tun so etwas wie 99999j
.
Das gleiche wie die Antwort von Ygoncho, aber ohne "magische Zahlen"
ctrl-v, w, G
G geht direkt zur letzten Zeile einer Datei, ohne ein paar Mal '9' zerschlagen zu müssen