繁体   English   中英

Vim:如何重新映射 <c-h> 在插入模式?

[英]Vim : How to remap <c-h> in insert mode?

我想在插入模式下映射以下内容进行导航

  • <ch> #向左移动
  • <cj> #下移
  • <ck> #向上移动
  • <cl> #向右移动

所以,我在我的.vimrc添加了以下内容:

inoremap <c-h> <left>
inoremap <c-j> <down>
inoremap <c-k> <up>
inoremap <c-l> <right>

现在,

  • 左边不起作用[相反它删除左边的字符]
  • 对了!
  • 起作用!
  • 下来工作!

据我了解, <ch>默认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

但即便如此也无效。

所以,我在我的.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>

更新以下更新以提问,评论和接受

我把上面的信息保持不变,但回应评论......

  1. 与你的“autoclose”插件的冲突解释了为什么这在编辑器中起作用而在$MYVIMRC起作用。 您可以通过将映射放在后目录中的插件文件中来解决此问题。

  2. 我使用标题案例进行<CH>映射,与官方文档中的符号一致。 文件说明

    {char}情况无关紧要; 因此CTRL - ACTRL - a是等价的。

    如果您想映射CTRL - Shift - H ,请改用inoremap <CSH>

  3. 我很高兴:verbose map帮助您找到问题的根源! :verbose调试Vim脚本时, :verbose是一个方便的工具。

祝好运!

我的解决方案

inoremap <c-p> <up>
inoremap <c-n> <down>
inoremap <c-b> <left>
inoremap <c-f> <right>

优势:它们广泛用于所有程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM