5

当我在 vim 中打开一个文件Foo.txt,然后使用:vsplit以便我可以并排检查它的不同部分时,我注意到如果我在左侧进行任何类型的视觉选择,vim 将在右侧选择相同的文本. 此外,如果在我开始视觉选择时两侧没有对齐,那么无论我切换到哪一侧,都会跳转到与选择的那一侧相匹配。

我希望能够使用可视模式突出显示拆分窗口两侧的不同文本段,或者至少能够在左侧使用可视模式,然后将光标向右移动。如果这两个文件实际上是不同的文件,这将非常有效。

是否有一些选项可以启用此功能,或者是制作文件副本的唯一方法?

编辑:我正在扩大这个问题的范围以包括任何基于 vimscript 的解决方案,因为它似乎不是一个可以设置的选项。如果有人有一个很好的技巧来获得这种行为,请分享。与此同时,我还将研究 autocmd,尽管它很可能超出了我目前对 vimscript 的了解。

4

1 回答 1

5

就好像 vim 在看到两个相同的文件时试图变得聪明,而这种聪明应该是可以禁用的。

这种“聪明”是视觉选择(准确地说是'<,'>标记)在缓冲区本地的实现细节。正如您所观察到的,不同的缓冲区可以有(并记住)不同的选择。

另一种方法是使视觉选择窗口本地化。我想没有选择这种方法是因为通常不能将确切的选择范围转移到另一个缓冲区;线的数量和长度是不同的。

也就是说,您可能可以使用:autocmds 来实现您想要的,将'<,'>标记保存在窗口局部变量 onWinLeave并从那些 on 恢复WinEnter

于 2013-03-12T07:35:56.933 回答