【问题标题】:Is it possible to have separate visual mode in Split window vim when editing the same file?编辑同一个文件时,是否可以在拆分窗口 vim 中有单独的可视模式?
【发布时间】:2013-02-27 11:33:35
【问题描述】:

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

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

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

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

【问题讨论】:

  • 我不相信可以在两个窗口中选择不同的东西,但我很高兴被证明是错误的。
  • 我觉得它应该是可能的原因是因为如果文件不是同一个文件,这将非常有效。就好像 vim 在看到两个相同的文件时试图变得聪明,而这种聪明应该是可禁用的。

标签: vim


【解决方案1】:

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

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

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

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

【讨论】:

  • +1 感谢您的建议。我已经扩展了问题,并将尝试您建议的解决方案。
猜你喜欢
  • 2012-08-08
  • 2016-11-14
  • 1970-01-01
  • 1970-01-01
  • 2016-11-18
  • 2015-09-04
  • 1970-01-01
  • 2014-05-08
  • 1970-01-01
相关资源
最近更新 更多