![使用映射键导航时 Vim 退出插入模式](https://linux22.com/image/1368267/%E4%BD%BF%E7%94%A8%E6%98%A0%E5%B0%84%E9%94%AE%E5%AF%BC%E8%88%AA%E6%97%B6%20Vim%20%E9%80%80%E5%87%BA%E6%8F%92%E5%85%A5%E6%A8%A1%E5%BC%8F.png)
为了在插入模式下移动光标,我在 .vimrc 中添加了以下键映射(我在 Sun OS 上使用 vim 7.3)
inoremap <Alt-h> <Left>
inoremap <Alt-j> <Down>
inoremap <Alt-k> <Up>
inoremap <Alt-l> <Right>
当我按下映射键时,光标移动正确,但 vim 会退出插入模式并切换到正常模式,我的 vim 出了什么问题?我也在 Windows 上使用 gvim 尝试过此操作,效果很好。我是否丢失了映射键的任何选项?
答案1
一些终端仿真器会为元 (alt) 字符生成转义序列。Alt-A
变为<esc>a
。这通常是 *nix 机器上的问题。
您可以在这里了解更多详细信息:
http://vim.wikia.com/wiki/Fix_meta-keys_that_break_out_of_Insert_mode
答案2
这不是一个解决方案,但可以解决你的问题
inoremap <Alt-h> <c-o>h
inoremap <Alt-j> <c-o>j
inoremap <Alt-k> <c-o>k
inoremap <Alt-l> <c-o>l
:h i_CTRL-O
=>execute one command, return to Insert mode
如果存在同样的问题(在 Sun OS 上退出插入模式),则以下操作应该可以跨平台运行 [未经验证的声明]。
inoremap <Alt-h> <esc>i
inoremap <Alt-j> <esc>ja
inoremap <Alt-k> <esc>ka
inoremap <Alt-l> <esc>la