В режиме Virtual-Replace-Mode буфер более жестко фиксируется в исходной позиции.
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>
Результат Replace-Mode:
1. 012345678901234567890
2. Hello autiful World
Результат Virtual-Replace-Mode:
1. 012345678901234567890
2. Hello tiful World
Потому что в режиме замены замена выполняется символом на символ, где Tab
один символ, независимо от того, сколько символов отображается. В Virtual-Replace-Mode видимая длина Tab
( :h 'ts'
, :h 'sts'
) используется для замены символов.