当我在vim中打开一个文件Foo.txt,然后使用:vsplit并排检查它的不同部分时,我注意到如果我在左边进行任何类型的视觉选择,vim都会在右边选择相同的文本。此外,当我开始视觉选择时,如果两侧没有对齐,则无论我切换到哪一侧,都会跳到与所选一侧相匹配的那一侧。
我希望能够使用视觉模式在拆分窗口的两侧突出显示文本的不同部分,或者至少能够使用左侧的视觉模式,然后将光标移动到右侧。如果这两个文件实际上是不同的文件,则可以很好地工作。
是否有一些选项可以实现这一点,或者是制作文件副本的唯一方法?
编辑:我正在扩展这个问题的范围,以包括任何基于vimscript的解决方案,因为它似乎不是一个可以设置的选项。如果有人有一个很好的方法来获得这种行为,请分享。同时,我还将研究autocmd,尽管它很可能超出了我目前对vimscript的了解。
发布于 2013-03-12 15:35:57
当它看到两个相同的文件时,就好像vim试图变得聪明,而这种聪明应该被禁用。
这个“聪明”是视觉选择(确切地说,是'<,'>标记)是缓冲区本地的实现细节。正如您所观察到的,不同的缓冲区可以有(并记住)不同的选择。
另一种方法是将视觉选择窗口设置为本地窗口。我猜之所以没有选择这种方法,是因为通常情况下,精确的选择范围不能转移到另一个缓冲区;行的数量和长度是不同的。
也就是说,您可能可以使用:autocmd实现您想要的东西,它将'<,'>标记保存在WinLeave上的窗口局部变量中,并从WinEnter上的标记恢复。
https://stackoverflow.com/questions/15353021
复制相似问题