水平分割Vim窗口时,滚动“旧”窗口的内容,以保留相对光标行的位置。即使对于小的“帮助程序”缓冲区(例如quickfix或预览窗口),也会发生这种情况。
由此引起的文本移动在重复打开和关闭拆分时变得很烦人-例如完成插件使用的预览窗口。是否可以禁用此功能,并且在拆分时不滚动旧窗口(除非有必要使光标线可见)?
示例-当前行为:
+--------------+ +--------------+
| a | | b |
| b | copen | c (cursor) |
| c (cursor) | --> | d |
| d | +--------------+
| e | | (preview) |
+--------------+ +--------------+
所需行为:
+--------------+ +--------------+
| a | | a |
| b | copen | b |
| c (cursor) | --> | c (cursor) |
| d | +--------------+
| e | | (preview) |
+--------------+ +--------------+
尝试类似的东西
map <F12> mcHmh:split<cr>'hzt`c
在c mc
中的存储位置
H
移至顶部将位置存储到h mh
例如,您的命令在此处拆分
转到h'h
将其留在顶部zt
并移至c
我本人在寻找解决方案时遇到了这个问题。我找不到一个好的解决方案,它确实困扰了我,所以我最终写了一个小的vim插件来解决这个问题。
https://github.com/gillyb/stable-windows
我认为它确实可以实现您想要的功能。我只是最近才写的,所以如果有任何错误,请随时打开一个问题,我将尝试修复它们。
希望有帮助! :)