为了在插入模式下移动光标,我在 .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