Vim 如何映射角色;在exrc吗?

Vim 如何映射角色;在exrc吗?,vim,macvim,Vim,Macvim,由于我编写了很多代码,所以我决定创建一些快捷方式,这样我就可以稍微提高我的速度。此外,在某些语言中,我们经常使用字符所以我决定映射它,所以每当我按下它时,在插入模式下会在行尾追加一个分号。 我想出了这个命令: map! ; ^[$a; 然后我意识到,由于第二部分的第二个分号(无限递归性),它无法生成! 我试图用\逃离它,但徒劳 一般映射提示: 使用noremap变体,除非您有充分的理由(如使用映射时)防止递归映射 指定模式,例如正常模式的n将是nmap或nnoremap 使用键表示法(例如,

由于我编写了很多代码,所以我决定创建一些快捷方式,这样我就可以稍微提高我的速度。此外,在某些语言中,我们经常使用字符
所以我决定映射它,所以每当我按下它时,在插入模式下会在行尾追加一个分号。 我想出了这个命令:

map! ; ^[$a;
然后我意识到,由于第二部分的第二个分号(无限递归性),它无法生成! 我试图用
\
逃离它,但徒劳

一般映射提示:

  • 使用
    noremap
    变体,除非您有充分的理由(如使用
    映射时)防止递归映射
  • 指定模式,例如正常模式的
    n
    将是
    nmap
    nnoremap
  • 使用键表示法(例如,
    ,…)提高可读性。e、 g.
    vs
    ^[
正常模式的新映射:

nnoremap ; A;<esc>
注意:在返回插入模式之前,使用
在插入模式下执行一个正常模式命令。尽管您可以同样轻松地执行
A;
(它比较短!)

我个人认为正常模式是正确的模式。我还认为在过度隐藏
命令之前,您应该三思而后行,因为它非常方便(请参见
:h;

有关更多帮助,请参阅:

:h :map-modes
:h :noremap
:h key-notation
:h A
:h i_ctrl-o
:h ;

您提供的命令无法完成所需的任务。我将该命令更改为
inoremap;$a;
,一切正常!:D谢谢!我忘了大写我的
a
a
相当于
$a
。请参见
:ha
:h :map-modes
:h :noremap
:h key-notation
:h A
:h i_ctrl-o
:h ;