psearch(Vim)的怪异行为

psearch(Vim)的怪异行为,vim,mapping,Vim,Mapping,这是我的.vimrc的一部分 " Mapping nnoremap <F3> :cclose<cr> nnoremap <F4> :w <bar> !cd ../build; make<cr><cr>:cw<cr> autocmd filetype cpp nnoremap <F6> :Termdebug %:r<CR><c-w>2j<c-w>L nnoremap

这是我的
.vimrc
的一部分

" Mapping
nnoremap <F3> :cclose<cr>
nnoremap <F4> :w <bar> !cd ../build; make<cr><cr>:cw<cr>
autocmd filetype cpp nnoremap <F6> :Termdebug %:r<CR><c-w>2j<c-w>L
nnoremap <F12> :!cd ..; !ctags -R 
"nnoremap <C-[> :psearch <C-R><C-W><CR>
nnoremap <C-H> <C-W>h
nnoremap <C-J> <C-W>j
nnoremap <C-K> <C-W>k
nnoremap <C-L> <C-W>l
inoremap <C-H> <Left>
inoremap <C-J> <Down>
inoremap <C-K> <Up>
inoremap <C-L> <Right>
nnoremap <esc><esc> :silent! noh<cr>
inoremap " ""<left>
inoremap ' ''<left>
inoremap ( ()<left>
inoremap [ []<left>
inoremap { {}<left>
inoremap {<CR> {<CR>}<ESC>O
inoremap {;<CR> {<CR>};<ESC>O
“映射
nnoremap:cclose
nnoremap:w!cd../build;make:cw
autocmd文件类型cpp nnoremap:Termdebug%:r2jL
nnoremap:!cd..;!ctags-R
“nnoremap:psearch
nnoremap h
nnoremap j
nNOREMAPK
nnoremap l
inoremap
inoremap
inoremap
inoremap
nnoremap:安静!诺
“重新映射”
inoremap''
inoremap()
inoremap[]
inoremap{{}
inoremap{{}O
inoremap{;{};O
正如你所看到的,我有一行评论,我认为这给了我一些问题。 如果未对此进行评论,我打开vim,我得到的结果如下:


打开实际文件的预览窗口,我进入替换模式,还有更奇怪的行为,例如,如果我处于插入模式,我按下
,然后按下一些箭头键vim insert A D或U(正如您所想象的,这取决于我按下的键)您出现此问题是因为
ESC
具有相同的钥匙码

:h keycodes
然后搜索“esc”,您将发现两者都有键代码27。也就是说,您映射了
ctrl-[
,实际上,您映射了
esc

在插入模式下,当您按ESC两次时,第一个ESC会将您带回正常模式,第二个ESC会触发映射,即
:psearch
命令

另外,在正常模式下按ESC键时,贴图也将被触发


解决方案也很简单,不要映射

我不知道为什么在打开文件时会触发。