Visueller Block Neue Zeile einfügen

10

Ich arbeite viel mit dem visuellen Blockmodus, der für schnelle Änderungen über viele Zeilen hinweg sehr nützlich ist.

Ich habe jedoch Schwierigkeiten, eine neue Zeile wie folgt einzufügen:

Die Auswahl wird wie folgt notiert []:

Some [t]ext
Some [t]ext
Some [t]ext
Some [t]ext
Some [t]ext

Ich drücke Iund kann Text hinzufügen, der vor dem eingefügt werden soll t:

Some other text
Some [t]ext
Some [t]ext
Some [t]ext
Some [t]ext

Wenn ich drücke, <Esc>erhalte ich Folgendes:

Some other text
Some other text
Some other text
Some other text
Some other text

Wenn ich jetzt <CR>anstelle des Textes drücke, den ich hinzufügen möchte, wird die neue Zeile wie gewünscht eingefügt, jedoch nicht für die anderen Zeilen. Das Ergebnis ist folgendes:

Some 
text
Some text
Some text
Some text
Some text

Wissen Sie, warum das nicht funktioniert?

Hinweis: Da es funktioniert cund rich nicht sicher bin, warum dies nicht funktioniert ...

nobe4
quelle
Wenn die Absicht besteht, eine neue Zeile nach einem Zeichen für ausgewählte Zeilen zu erstellen, können wir ein Makro ausprobieren. Gehen Sie zur n-ten Spalte und geben Sie eine neue Zeile ein und wiederholen Sie diese bis zur Auswahl
SibiCoder
Ja, oder eine Substitution könnte auch funktionieren, aber ich beabsichtige, die Vorgehensweise im visuellen Blockmodus zu erarbeiten.
nobe4
4
Dies ist im visuellen Blockmodus leider nicht möglich. Verwenden Sie stattdessen eine Substitution oder eine Aufnahme.
Romainl

Antworten:

4

Der visuelle Block Ifunktioniert so nicht. Das Beste, was Sie wahrscheinlich tun können, ist Folgendes.

Markieren Sie eine Spalte im visuellen Blockmodus (mit [b]einem hervorgehobenen Zeichen wie in Ihrer Frage):

aaa[b]bb
aaa[b]bb
aaa[b]bb
aaa[b]bb
cccccc

Führen Sie eine Ersetzung im visuellen Bereich durch \%V:

:'<,'>s/\%V/\r/

Vim fügt das '<,'>für Sie ein, wenn Sie drücken :, sodass Sie dieses Bit nicht eingeben müssen.

Und das Ergebnis:

aaa
bbb
aaa
bbb
aaa
bbb
aaa
bbb
cccccc

Wenn Sie bei einem visuellen Block häufig Linien teilen müssen, ist dies wahrscheinlich in Ihrem Verlauf leicht verfügbar, und Sie müssen möglicherweise nur noch hervorheben :<up><return>.

Antonius
quelle
Gute Verwendung der, \%Vauch wenn es nicht das ist, was ich wollte, werde ich dies akzeptieren (aber was ich will, scheint sowieso unmöglich ^^)
nobe4