我的.vimrc中有以下几行,我认为这已经足够了:
nnoremap <left> <nop>
nnoremap <right> <nop>
nnoremap <up> <nop>
nnoremap <down> <nop>
inoremap <left> <nop>
inoremap <right> <nop>
inoremap <up> <nop>
inoremap <down> <nop>
箭头键在正常模式下不执行任何操作(按预期方式),但继续在插入模式下运行。我也试过了imap
,但这也没有用。使用inoremap <left>
查询映射确认绑定不会被其他内容覆盖。我不知道发生了什么。
作为最后一次测试,我启动了vim,没有带vim -u NONE
的vimrc,然后只运行了映射。如果我现在进入插入模式并按箭头键,它会在我光标所在的新行上插入字母A,B,C或D,这完全不是我所期望的。
答案 0 :(得分:7)
基于this page,您可以使用以下映射进行此操作。
noremap <Up> ""
noremap! <Up> <Esc>
noremap <Down> ""
noremap! <Down> <Esc>
noremap <Left> ""
noremap! <Left> <Esc>
noremap <Right> ""
noremap! <Right> <Esc>
我对它们进行了测试并且它们有效,但我现在还不明白为什么这种魔法会起作用。
特别是,我不确定为什么有必要将映射两次,但它应该对解决问题有效。
答案 1 :(得分:1)
A B C D的插入响铃。您似乎遇到Fix broken arrow key navigation in insert mode和Fix arrow keys that display A B C D on remote shell中描述的问题,可能还有解决方法。
这会干扰:imap
到<Nop>
。