Angenommen, ich habe folgende Texte:
aaa-dd-e: "aaa",
bb-x: "bb",
c-9: "c"
Ich möchte eine Auswahl wie folgt treffen:
aaa-dd-e:
"aaa",
bb-x:
"bb",
c-9:
"c"
Ich habe versucht, mit cv einen visuellen Block zu erstellen, aber nachdem ich in der ersten Spalte eine Auswahl erstellt und "f:" gedrückt habe (ich wollte die Auswahl in jeder Zeile wie oben auf die Doppelpunktmarkierung erweitern), erhalte ich Folgendes:
aaa-
dd-e: "aaa" ,
bb-x
: "bb",
c-9:
"c"
Die Auswahl stoppt beim ersten Doppelpunkt und erstellt ein Rechteck.
visual-mode
Aaron Shen
quelle
quelle
Antworten:
Auswahl ist im Allgemeinen ein Mittel zum Zweck, mehr noch in Vim, wo Auswahl oft überhaupt nicht notwendig ist.
Angenommen, Sie möchten Eigenschaftsnamen in Ihrer Nicht-JSON-Datei weiterhin in Anführungszeichen setzen, um sie in die richtige JSON-Datei umzuwandeln:
:'<,'>norm I"^[f:i"
('<,'>
wird automatisch für Sie eingefügt und^[
mit erhalten<C-v><Esc>
).Wenn Sie das schöne Surround-Plugin haben, wird Schritt 2 zu:
Mit einer Substitution könnte Schritt 2 werden:
quelle
:g/regex/norm
kann ich einfach erreichen, was ich tun möchte."+y
oder"*y
je nachdem, auf welche Zwischenablage Sie abzielen möchten. Hier gibt es viele verwandte Fragen.Vim unterstützt nur rechteckige blockweise Auswahlen, mit Ausnahme des gezackten rechten Randes beim Drücken
$
.Es gibt Plugins (wie vim multiple cursors ), die mehrere Auswahlen emulieren können, aber Sie sollten Ihr tatsächliches Ziel (das Sie leider nicht erwähnt haben) auch mit reinen Vim-Befehlen erreichen können,
:global
und:substitute
(wenn Sie einen regulären Befehl formulieren können) Ausdruck, der der Auswahl in jeder Zeile entspricht) oder durch Wiederholen von Makros (wenn es eine bestimmte Bewegung gibt, die die Auswahl in jeder Zeile abdeckt).quelle
Just another Hut in den Ring zu werfen, wenn Sie wirklich verwenden , können Sie visuelle Auswahl wollen das nutzen Tabellarische Plugin die Doppelpunkte aufreihen, dann Ihre visuelle Auswahl treffen.
Wenn Sie Ihren Originaltext nehmen:
:Tab /:\zs
richtet alles nach dem Doppelpunkt wie unten ausUnd dann können Sie Ihre visuelle Blockauswahl treffen.
Wie andere bereits gesagt haben, ist eine visuelle Auswahl in dieser Situation wahrscheinlich nicht erforderlich. Durch die Verwendung
norm
oder Ersetzung können Sie wahrscheinlich das erreichen, was Sie möchten, ohne sich um die visuelle Auswahl kümmern zu müssen.quelle
Ich habe eine Lösung für dieses Problem gefunden, die überraschend einfach ist! Starten Sie den visuellen Blockmodus am unteren Rand der Auswahl des zu kopierenden Textes und wählen Sie ihn nach oben aus! Wenn Sie nach unten markieren, wird der Block erweitert, während die Auswahl kleiner erscheint.
quelle