<C-W><C-O>
或<C-W>o
调用vim单窗口命令,该命令最大化当前的vim分割,并且烦人地(如果你不经意地输入它)关闭所有其他命令。
我想将其重新映射到<C-W><C-_>
,而不会关闭其他窗口。
在.vimrc我有
map <c-w><c-o> <c-w><c-_>
map <c-w>o <c-w><c-_>
如果我快速连续输入C-W
然后o
或C-O
,则此方法有效。
但是,如果我键入C-W
,然后等待一秒,然后键入o
或C-O
我已设置的映射被绕过,并调用单窗口命令。
我应该使用其他一些地图变体吗?
答案 0 :(得分:3)
您可以做的另一件事是修改'timeout'
和'timeoutlen'
设置:
例如:set timeoutlen=3000
将映射超时设置为3秒而不是1(默认值)。
参考:help 'timeout'
和:help 'timeoutlen'
。
答案 1 :(得分:2)
映射与内置双键映射(如<C-w>o
)之间的区别在于前者超时,而后者无限期等待第二次按键。要使用映射完全覆盖行为,您必须为<C-w>
定义(表达式)映射,并使用getchar()
处理映射内的第二个键(它也会无限期地等待)。 / p>
但是请仔细考虑是否真的需要这样的努力:如果你容易使用指法或按错键,你对Vim的使用将受到严重阻碍。通过快速反馈,你可以更好地学习你的错误,并尝试改善你的肌肉记忆!
答案 2 :(得分:1)
如何将set hidden
放入.vimrc,所以在关闭所有拆分后,他们不会被关闭,只能放到后台?之后,您可以通过:ls
命令列出所有打开的缓冲区。
但是关于你的映射,也许你可以尝试取消映射(或者甚至更好的nunmap - 只在正常模式下取消映射命令)o首先,然后映射它。