3

我大约 3 天前开始学习 VIM。现在我被困在创建宏中。

在开始学习 VIM 时,我创建了映射:jk -> ESC为了方便(inoremap jk <ESC>)。现在我的宏只有在我按下ESC时才能正常工作;与jk他们不能正常工作。

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

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

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

如果适用@a于该行example,我最后没有得到冒号......我最终得到:

:example

如果适用@b于该行example,我在最后得到冒号......我最终得到:

: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”的行为相等。

PS对不起,如果解释不顺利,这是我的第一个问题,我试图让它尽可能简单。

4

1 回答 1

3

您需要将评论向上移动。

代替:

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

做:

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

Vim 将此注释解释为映射的一部分。

有关更多信息,请参阅“为什么重新映射会使光标跳转? ”。

于 2022-01-29T14:52:42.473 回答