Vim:在插入模式下重新映射 Ctrl-W 以使其行为与在正常模式下相同
Vim: Remap Ctrl-W in insert mode to behave as it does in normal mode
我希望 Ctrl-W 允许我切换 windows 即使我处于插入模式。我该如何进行更改?
我的动机是在移动前不需要按 Esc 键 windows。
对于<c-w><c-j>
(例如),您可以这样做:
inoremap <c-w><c-j> <esc><c-w><c-j>gi
然后你可以为你使用的每个命令重复这种映射:
inoremap <c-w><c-k> <esc><c-w><c-k>gi
inoremap <c-w><c-w> <esc><c-w><c-w>gi
inoremap <c-w>+ <esc><c-w>+gi
inoremap <c-w>- <esc><c-w>-gi
...
如果你选择这个简单的解决方案,那么你最终可以添加这个映射来抑制原生 <c-w>
键(=删除最后一个词):
inoremap <c-w> <nop>
可以编写更多“智能”解决方案,但它们意味着需要更多代码。
注 1:如注释中所述,要选择的映射取决于击键后要达到的模式:命令中的后缀 gi
上面的意思是你想在新的 window 中返回到插入模式;但如果你想进入普通模式,你可以去掉这个后缀。
注 2:后缀 gi
可以简单地 i
,视情况而定:参见 :h i
和 :h gi
我希望 Ctrl-W 允许我切换 windows 即使我处于插入模式。我该如何进行更改?
我的动机是在移动前不需要按 Esc 键 windows。
对于<c-w><c-j>
(例如),您可以这样做:
inoremap <c-w><c-j> <esc><c-w><c-j>gi
然后你可以为你使用的每个命令重复这种映射:
inoremap <c-w><c-k> <esc><c-w><c-k>gi
inoremap <c-w><c-w> <esc><c-w><c-w>gi
inoremap <c-w>+ <esc><c-w>+gi
inoremap <c-w>- <esc><c-w>-gi
...
如果你选择这个简单的解决方案,那么你最终可以添加这个映射来抑制原生 <c-w>
键(=删除最后一个词):
inoremap <c-w> <nop>
可以编写更多“智能”解决方案,但它们意味着需要更多代码。
注 1:如注释中所述,要选择的映射取决于击键后要达到的模式:命令中的后缀 gi
上面的意思是你想在新的 window 中返回到插入模式;但如果你想进入普通模式,你可以去掉这个后缀。
注 2:后缀 gi
可以简单地 i
,视情况而定:参见 :h i
和 :h gi