编辑同一个文件时,是否可以在拆分窗口vim中使用单独的可视模式?

mer*_*011 5 vim

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

我希望能够使用可视模式突出显示分割窗口两侧的文本的不同部分,或者至少能够使用左侧的可视模式,然后将光标移动到右侧.如果两个文件实际上是不同的文件,这完全正常.

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

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

Ing*_*kat 5

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

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

另一种方法是使视觉选择窗口为局部.我猜这种方法没有被选中,因为通常,精确的选择范围不能转移到另一个缓冲区; 线的数量和长度是不同的.

也就是说,您可以使用:autocmds来实现所需的功能,将'<,'>标记保存在窗口局部变量中WinLeave并从中恢复WinEnter.