使用映射键导航时 Vim 退出插入模式

使用映射键导航时 Vim 退出插入模式

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

相关内容