Jaki jest sens trybu wirtualnego zastępowania w Vimie?

9

Pomoc mówi, że polecenia wirtualnego trybu zastępowania w Vimie gri GRzamiany znaków w oknie nieruchomości, a nie w pliku.

:help Virtual-Replace-mode

Rozumiem to jako zmianę znaków na wyświetlaczu, ale nie w samym buforze. Czy to prawda? To wydaje się niepoprawne.

Mogę użyć wyjaśnienia i prawdopodobnie scenariusza lub przykładu, w którym ta funkcja jest istotna.

Sri Kadimisetty
źródło

Odpowiedzi:

9

W trybie wirtualnej zamiany bufor jest trudniej przymocowany do swojej pozycji początkowej.

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

Po przejściu do normalnego trybu zastępowania i naciśnięciu Internet<CR>And othersnowego bufora będzie to wyglądało tak:

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

Gdy zrobisz to samo w Virtual-Replace, wynik będzie

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

Kolejny przykład (tabstop = 2; sts = 0):

1. 012345678901234567890
2. Hello beautiful World
         ^ Cursor

Wciśnięte klawisze: <Tab><Tab>

Wynik trybu zamiany:

1. 012345678901234567890
2. Hello     autiful World

Wynik trybu wirtualnej wymiany:

1. 012345678901234567890
2. Hello     tiful World

Ponieważ w trybie Zamień zamiana jest wykonywana znak po znaku, gdzie Tabjest jeden znak, bez względu na liczbę wyświetlanych znaków. W trybie Virtual-Replace-Mode do zastąpienia znaków używana jest widoczna długość Tab( :h 'ts', :h 'sts').

krissi
źródło
(Czy jakieś znaki zostały zjedzone przez formatowanie komentarzy, niektóre cytowane ciągi wyglądają, jakby brakowało mi tekstu). W każdym razie ostatni akapit bardzo pomógł. Jestem całkiem pewien, że teraz to rozumiem :) Dzięki ton @krissi!
Sri Kadimisetty