我有
noremap ; :
noremap : ;
Run Code Online (Sandbox Code Playgroud)
设置为尝试让我使用较短的击键来获取冒号.然而,这使得我的其他映射不起作用,因为现在它放了一个分号而不是冒号.
map ,c :cd ~/code<CR>例如变得map ,c ;cd ~/code<CR>如此不起作用.我怎样才能解决这个问题?谢谢!
该:map系列的命令允许在新映射(包括其自身)的定义中使用映射.它可以在必要时使递归和嵌套映射成为可能.这就是冒号映射应用于具有冒号字符的其他映射的原因
:map ,c :cd ~/code<cr>
Run Code Online (Sandbox Code Playgroud)
要避免此行为,请使用:noremap命令族,这些命令不解释映射定义右侧的任何映射(请参阅参考资料:help :no):
:noremap ,c :cd ~/code<cr>
Run Code Online (Sandbox Code Playgroud)
在大多数情况下,干扰其他映射是不希望的副作用.根据经验,我建议在引入映射时遵循以下约定::noremap
除非有明确的理由,否则请使用函数.