Was bringt der virtuelle Ersetzungsmodus in Vim?

9

Die Hilfe besagt, dass Befehle für den virtuellen Ersetzungsmodus in Vim gr& GRZeichen im Bildschirmbereich und nicht in Dateien ersetzen.

:help Virtual-Replace-mode

Ich verstehe dies als etwas wie das Ändern der Zeichen auf dem Display, aber nicht im Puffer selbst. Ist das richtig? Es scheint falsch.

Ich kann eine Erklärung und wahrscheinlich ein Szenario oder ein Beispiel verwenden, in dem diese Funktion relevant ist.

Sri Kadimisetty
quelle

Antworten:

9

Im Virtual-Replace-Modus ist der Puffer fester an seiner Ursprungsposition fixiert.

1. Hello World
         ^ Cursor
2. I like cheese
3. And beer

Wenn Sie in den normalen Ersetzungsmodus wechseln und Internet<CR>And othersden neuen Puffer drücken, sieht dies folgendermaßen aus:

1. Hello Internet
2. And others
3. I like cheese
4. And beer

Wenn Sie dasselbe in Virtual-Replace tun, wird das Ergebnis sein

1. Hello Internet
2. And othersese
3. And beer

Ein weiteres Beispiel (tabstop = 2; sts = 0):

1. 012345678901234567890
2. Hello beautiful World
         ^ Cursor

Gedrückte Tasten: <Tab><Tab>

Ergebnis im Ersetzungsmodus:

1. 012345678901234567890
2. Hello     autiful World

Ergebnis des virtuellen Ersetzungsmodus:

1. 012345678901234567890
2. Hello     tiful World

Da im Ersetzungsmodus das Ersetzen von TabZeichen zu Zeichen erfolgt , wobei es sich um ein Zeichen handelt, unabhängig davon, wie viele Zeichen angezeigt werden. Im Virtual-Replace-Modus wird die sichtbare Länge von Tab( :h 'ts', :h 'sts') verwendet, um die Zeichen zu ersetzen.

krissi
quelle
(Wurden Zeichen durch die Formatierung von Kommentaren aufgefressen, sehen einige zitierte Zeichenfolgen für mich so aus, als würden sie Text vermissen). Wie auch immer, der letzte Absatz hat sehr geholfen. Ich bin mir ziemlich sicher, dass ich es jetzt bekomme :) Vielen Dank @krissi!
Sri Kadimisetty