VIM 创建宏时映射无法正常工作

VIM Mapping doesn't work properly when I create macros

我大约 3 天前开始学习 VIM。现在我一直在创建宏。

在学习之初VIM 为了方便起见,我创建了映射:jk -> ESC (inoremap jk <ESC>)。现在我的宏只有在我按下 ESC 时才能正常工作; jk 它们无法正常工作。

例如,我创建宏以将 : 添加到行的开头和结尾:

'I' + ':' + 'ESC' + 'A' + ':' + 'ESC'

@a macros: 我用 jk.
退出了插入模式 @b macros: 我用 <ESC>.

退出了插入模式

如果将 @a 应用到 example 行,我 不会 在末尾得到冒号...我 结束于:

:example

如果将 @b 应用到 example 行,我 do 得到最后的冒号...我结束 最多:

:example:

命令输出 - :registers(宏不一样):

~/.vimrc :

1 syntax on " highlight syntax 
2 set number " show line numbers
3 set hlsearch " highlight all results
4 set noswapfile " disable the swapfile
5 set ignorecase " ignore case in search
6 set incsearch " show search results as you type
7 " set spell spelllang=en_us " misspelled words are automatically underlined
8 
9 inoremap jk <ESC> " type 'jk' for leaving insert mode

问:如何在录制宏时使'jk'和'ESC'的行为相等。

P.S。 抱歉,如果解释的不顺畅,这是我的第一个问题,我尽量让它尽可能简单。

您需要将评论上移。

而不是:

inoremap jk <ESC> " type 'jk' for leaving insert mode

做:

" type 'jk' for leaving insert mode
inoremap jk <ESC>

Vim 将此评论解释为您的映射的一部分。

有关更多信息,请参阅“Why does remapping make the cursor jump?”。