Який сенс режиму віртуальної заміни у Vim?


9

У довідці йдеться про те, що команди режиму віртуальної заміни у Vim gr& GRзамінюють символи у властивості екрана, а не у файлі.

:help Virtual-Replace-mode

Я розумію це як щось на зразок зміни символів на дисплеї, але не в самому буфері. Це так? Це здається неправильним.

Я можу використовувати пояснення та, можливо, сценарій чи приклад, коли ця функція є актуальною.

Відповіді:


9

У режимі віртуальної заміни буфер важче фіксується у вихідному положенні.

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

При вході в звичайний режим заміни та натисканні Internet<CR>And othersнового буфера буде таким:

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

Виконуючи те ж саме у Virtual-Replace, результат буде

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

Інший приклад (tabstop = 2; sts = 0):

1. 012345678901234567890
2. Hello beautiful World
         ^ Cursor

Натиснуті клавіші: <Tab><Tab>

Результат заміни в режимі:

1. 012345678901234567890
2. Hello     autiful World

Результат режиму віртуальної заміни:

1. 012345678901234567890
2. Hello     tiful World

Тому що в режимі Replace заміна виконується char char, де Tabє одна char, незалежно від кількості символів. У режимі віртуальної заміни видима довжина Tab( :h 'ts', :h 'sts') використовується для заміни знаків.


(Хтось із персонажів з'їдався за допомогою форматування коментарів, деякі цитувані рядки виглядають так, ніби вони пропускають текст). У будь-якому випадку останній абзац дуже допоміг. Я впевнений, що я зараз це отримую :) Дякую тонну @krissi!
Шрі Кадимісетті
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.