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

时间:2013-03-12 03:55:15

标签: vim

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

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

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

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

1 个答案:

答案 0 :(得分:5)

  

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

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

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

也就是说,你可以用:autocmd来实现你想要的东西,它在'<,'>上的窗口局部变量中保存WinLeave标记,并从WinEnter上的那些变量中恢复}。