Vim 中的虚拟替换模式有何意义?

Vim 中的虚拟替换模式有何意义?

帮助中说 Vim 中的虚拟替换模式命令gr&GR替换屏幕空间中的字符,而不是文件中的字符。

:help Virtual-Replace-mode

我将其理解为类似于更改显示器上的字符而不是缓冲区本身的字符。是对的吗?这似乎是不正确的。

我可以使用一个解释,也可以使用一个与此功能相关的场景或示例。

答案1

在虚拟替换模式下,缓冲区更难固定到其原始位置。

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

因为在替换模式下,替换是一个字符一个字符地完成的,Tab无论显示多少个字符,其中都是一个字符。在虚拟替换模式中,Tab( :h 'ts', :h 'sts') 的可见长度用于替换字符。

相关内容