我想在插入模式下为导航映射以下内容:
<c-h>
#向左移动<c-j>
#下移<c-k>
#上移<c-l>
#向右移动所以,我在.vimrc
添加了以下内容:
inoremap <c-h> <left>
inoremap <c-j> <down>
inoremap <c-k> <up>
inoremap <c-l> <right>
现在,
据我了解,<c-h>
默认为deletes left character
。但是我无法覆盖它。
我甚至试过这个:
inoremap <c-j> <down>
inoremap <c-k> <up>
inoremap <c-l> <right>
" Re-mapping <c-h> for insert-mode
autocmd InsertEnter call RemapCtrlH()
function RemapCtrlH()
iunmap <c-h>
inoremap <c-h> <left>
endfunction
但即使这样也不起作用。
答案 0 :(得分:2)
所以,我在
.vimrc
添加了以下内容:
inoremap <c-j> <down>
inoremap <c-j> <down>
inoremap <c-k> <up>
inoremap <c-l> <right>
你的第一行和第二行是一样的!将第一个更改为以下内容:
inoremap <C-H> <Left>
您可以使用以下方式确认您的映射:
:verbose imap <C-H>
我保留上述信息不变,但回应评论......
与“autoclose”插件的冲突解释了为什么这在编辑器中有效但在$MYVIMRC
中无效。您可以通过将映射放在after-directory的插件文件中来解决此问题。
我使用了<C-H>
映射的标题大小写,与官方文档中的notation一致。 The documentation states:
{char}
的情况并不重要;因此 CTRL - A 和 CTRL - a 是等效的。
如果您希望映射 CTRL - Shift - H ,请改用inoremap <C-S-H>
。
我很高兴:verbose map
帮助您找出问题的根源!调试Vim脚本时,:verbose
是一个方便的工具。
答案 1 :(得分:1)
我的解决方案:
inoremap <c-p> <up>
inoremap <c-n> <down>
inoremap <c-b> <left>
inoremap <c-f> <right>
优势:它们被广泛用于所有程序。