vim中`<Esc>`和`inoremap jk <Esc>`的行为差异

eZa*_*oto 6 vim ubuntu

我刚刚在一台新计算机上安装了 Ubuntu 12.04,apt-get install[ed] vim并且我的别名出现了一些奇怪的行为Esc- 如果我处于INSERT模式并键入Esc键,我退出INSERT模式并且光标向左移动一个字符,正如预期的那样,但如果我输入jk别名,我在我的定义.vimrc是inoremap jk <Esc>,我退出INSERT模式,光标移动一个字符正确的,这实际上是相当令人不安。关于为什么会这样的任何想法?

slm*_*slm 4

我认为这不仅仅是因为这条规则,还有其他原因造成的。如果我创建一个.vimrc仅包含此规则的文件:

$ more .vimrc
inoremap jk <Esc>
Run Code Online (Sandbox Code Playgroud)

我从这两种方法中得到了与预期相同的行为。

示例#1 -esc

调用vim,进入插入模式,向右箭头 1 次,点击Esc。

   vim 的 ss 带 esc

示例#2 -jk

调用vim,进入插入模式,向右箭头 1 次,点击jk。

   vim 的 ss 和 jk