Vim:打开预览/快速修复时不要移动窗口内容

20

当水平分割Vim窗口时,"旧"窗口的内容会滚动,以保持相对光标行位置。即使是像快速修复或预览窗口这样的小型“辅助”缓冲区也会发生这种情况。

当重复打开和关闭分割(例如由完成插件使用的预览窗口)时,这导致文本移动变得烦人。是否可以禁用此功能,并在分割时不滚动旧窗口(除非需要保持光标行可见)?

示例-当前行为:

+--------------+              +--------------+
| a            |              | b            |
| b            |    copen     | c  (cursor)  |
| c  (cursor)  |     -->      | d            |
| d            |              +--------------+
| e            |              |  (preview)   |
+--------------+              +--------------+

期望的行为:

+--------------+              +--------------+
| a            |              | a            |
| b            |    copen     | b            |
| c  (cursor)  |     -->      | c  (cursor)  |
| d            |              +--------------+
| e            |              |  (preview)   |
+--------------+              +--------------+

1
注意:此问题已发布到SO,因为答案可能需要Vimscript编程。 - rburny
你找到解决方案了吗? - Anders Lundstedt
很遗憾,没有 - 而且我也不觉得这件事情够烦人以至于要写一个插件来解决它 :) - rburny
2个回答

2
我在寻找解决自己问题的方案时发现了这个问题。我找不到一个好的解决方案,这让我很困扰,所以我写了一个小的vim插件来解决这个问题。https://github.com/gillyb/stable-windows我认为它完全符合您的要求。我最近才编写它,所以如果有任何bug,请随时提出问题,我会尝试修复它们。希望能帮到你! :)

1
我看到你在 Github 存储库上开了一个问题,谢谢!我会尽快修复它!对此给您带来的不便感到抱歉。 - gillyb

1
尝试类似以下的内容:
 map <F12> mcHmh:split<cr>'hzt`c

在c中存储位置 mc

H 移动到顶部 将位置存储到h mh

在此处分割您的命令,例如:

前往h 'h 将此放入顶部行 zt 并前往c


谢谢,但这仅适用于手动打开的分屏,我主要关注预览窗口(编辑问题以使其更明显)。 - rburny

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接