SCHNELLE ZUSAMMENFASSUNG DER ANTWORT: Ich werde die Antwort hier einfach in einfacher Form formulieren. Es gibt so viele Kommentare, dass dieser Thread ertrinkt. 1) Überprüfen Sie, ob Sie + visualextra in Ihrer Version von Vim aktiviert haben, indem Sie Folgendes eingeben: ver in Vim. 2) Sie fügen ein, indem Sie zuerst das Material markieren, das Sie bearbeiten möchten, und dann I (Großbuchstabe i) drücken - Kleinbuchstaben, die nicht funktionieren. 3) Sobald Sie dies getan haben, sieht es möglicherweise so aus, als würden Sie nur in die erste Zeile einfügen. Wenn Sie fertig sind, drücken Sie ESC und j, und der Text wird in die anderen Zeilen kopiert. So geht es mir.
Zeth
Antworten:
202
Versuche dies
Drücken Sie nach Auswahl eines Textblocks Shift+ ioder Großbuchstaben I.
Kleinbuchstaben ifunktionieren nicht.
Geben Sie dann die gewünschten Elemente ein und drücken Sie Esczweimal , um sie schließlich auf alle Zeilen anzuwenden .
Wenn das nicht funktioniert ...
Überprüfen Sie, ob Sie +visualextrain Ihrer Version von Vim aktiviert haben .
Sie können dies tun, indem Sie :verdie Liste der Funktionen eingeben und durch sie scrollen. (Möglicherweise möchten Sie es kopieren und in einen Puffer einfügen und eine inkrementelle Suche durchführen, da das Format ungerade ist.)
Das Aktivieren liegt außerhalb des Rahmens dieser Frage, aber ich bin sicher, dass Sie es irgendwo finden können.
Sie müssen auch die Esc-Taste drücken, um den Einfügemodus zu verlassen, bevor der Text dupliziert wird.
Brandon Joyce
19
Hat jemand jemals gesehen, dass dies nicht funktioniert? Ich habe ein nicht modifiziertes vim-Setup unter CentOS. Ich drücke Strg + V, drücke einige Male Ja und sehe, wie der Cursor das erste Zeichen einiger Zeilen hervorhebt. Ich drücke Shift + i. Der Cursor bewegt sich zum ersten Zeichen der ersten Zeile, aber ich kehre zum normalen Modus zurück. Ich weiß das, denn wenn ich "a" drücke, wird das Zeichen nach rechts verschoben und "- INSERT -" angezeigt. Wenn ich ein paar Zeichen eingebe und die Esc-Taste drücke, wird dies nicht auf die anderen Zeilen angewendet.
Tyler Collier
2
@ TylerCollier Ich habe das Problem unter Ubuntu 14.04 auf Digitalocean. Bitte kommentieren Sie, wenn Sie eine Lösung gefunden haben.
Zack Burt
2
@ZacharyBurt Das mit Ubuntu 14.04 (installiert als vi) installierte Standard-VIM enthält diese Funktion nicht visualextra, sodass das Einfügen von Blöcken dort nicht funktioniert. sudo apt-get install vimbringt eine voll funktionsfähige Version, auf der visualextraaktiviert ist. @TylerCollier Dies kann auch bei Ihrer CentOS-Installation das gleiche Problem sein: Überprüfen Sie die Ausgabe von vim --version, um die vollständige Liste der aktivierten Funktionen anzuzeigen .
Gabriel Grant
40
Drücken Sie Strg und v // Startauswahl
Drücken Sie die Umschalttaste und i // und geben Sie einen beliebigen Text ein
Nach dem Drücken ctrl + vkönnen Sie drücken, jum schnell Zeilen unterhalb der aktuellen Position kauszuwählen , oder drücken, um schnell Zeilen oberhalb der aktuellen Position auszuwählen. Sie können auch die shiftTaste mit den upoder downFehlern verwenden, um die Auswahl zu treffen.
tyler.frankenstein
1
Von allen Antworten ist dies die einzige, die für mich funktioniert hat. Ich bin auf einem Mac mit der Brew-Installation
Daniel Kaplan
Ich habe seit Jahren beklagen , dass ich konnte nicht leicht i nsert (wie c hange) im Block wählen. iIch bin erstaunt, dass es eine Hauptstadt gibt. Ich habe verwendet :normal iINPUT<CR>, um am Anfang von Zeilen einzugeben. Vielen Dank dafür!
Tim Visée
Ich glaube nicht, dass Sie zweimal esc drücken müssen. Wenn Sie nach esc etwas drücken, wird der Text automatisch aktualisiert. Wenn nicht, dauert es ungefähr eine halbe Sekunde.
Shahbaz
29
Möglicherweise haben Sie auch einen Anwendungsfall, in dem Sie einen Textblock löschen und ersetzen möchten.
So was
Hello World
Hello World
Sie können die visuelle Blockauswahl vor "W" treffen und Shift+ i- "Cool" - Hit drückenESC und dann "Welt" durch visuelle Blockauswahl löschen.
Alternativ besteht die coolere Möglichkeit darin, in beiden Zeilen nur die visuelle Blockauswahl "Welt" zu treffen. Geben Sie ein cfür change. Jetzt bist du im insertModus. Fügen Sie das gewünschte Material ein und drücken Sie ESC. Beides wird mit weniger Tastenanschlägen reflektiert.
Antworten:
Versuche dies
Drücken Sie nach Auswahl eines Textblocks Shift+ ioder Großbuchstaben I.
Kleinbuchstaben ifunktionieren nicht.
Geben Sie dann die gewünschten Elemente ein und drücken Sie Esczweimal , um sie schließlich auf alle Zeilen anzuwenden .
Wenn das nicht funktioniert ...
Überprüfen Sie, ob Sie
+visualextra
in Ihrer Version von Vim aktiviert haben .Sie können dies tun, indem Sie
:ver
die Liste der Funktionen eingeben und durch sie scrollen. (Möglicherweise möchten Sie es kopieren und in einen Puffer einfügen und eine inkrementelle Suche durchführen, da das Format ungerade ist.)Das Aktivieren liegt außerhalb des Rahmens dieser Frage, aber ich bin sicher, dass Sie es irgendwo finden können.
quelle
A
!vi
) installierte Standard-VIM enthält diese Funktion nichtvisualextra
, sodass das Einfügen von Blöcken dort nicht funktioniert.sudo apt-get install vim
bringt eine voll funktionsfähige Version, auf dervisualextra
aktiviert ist. @TylerCollier Dies kann auch bei Ihrer CentOS-Installation das gleiche Problem sein: Überprüfen Sie die Ausgabe vonvim --version
, um die vollständige Liste der aktivierten Funktionen anzuzeigen .quelle
ctrl + v
können Sie drücken,j
um schnell Zeilen unterhalb der aktuellen Positionk
auszuwählen , oder drücken, um schnell Zeilen oberhalb der aktuellen Position auszuwählen. Sie können auch dieshift
Taste mit denup
oderdown
Fehlern verwenden, um die Auswahl zu treffen.i
Ich bin erstaunt, dass es eine Hauptstadt gibt. Ich habe verwendet:normal iINPUT<CR>
, um am Anfang von Zeilen einzugeben. Vielen Dank dafür!Möglicherweise haben Sie auch einen Anwendungsfall, in dem Sie einen Textblock löschen und ersetzen möchten.
So was
Sie können die visuelle Blockauswahl vor "W" treffen und Shift+ i- "Cool" - Hit drückenESC und dann "Welt" durch visuelle Blockauswahl löschen.
Alternativ besteht die coolere Möglichkeit darin, in beiden Zeilen nur die visuelle Blockauswahl "Welt" zu treffen. Geben Sie ein cfür
change
. Jetzt bist du iminsert
Modus. Fügen Sie das gewünschte Material ein und drücken Sie ESC. Beides wird mit weniger Tastenanschlägen reflektiert.quelle
ESC
dann zeigt die gesamte markierte Zeile das Zeichen, das Sie eingeben.Wenn Sie vor oder nach der ausgewählten Spalte neuen Text hinzufügen möchten:
quelle
jj
um die Änderungen auf alle Zeilen unten zu verbreiten, war das letzte bisschen, das mir fehlte!jj
ist ein Mörder!