我们可以在 Vimrc 中定义多个 <leader> 键吗?

Can we define more than one <leader> key in Vimrc?

如果我们想在 vimrc 文件中分配更多映射的快捷方式,那么我们有哪些选项? 我们可以使用多个领导密钥吗?

更改 mapleader

由于在定义映射时使用 mapleader 的值,因此您确实可以在加载插件时更改它。为此,您必须明确 :runtime 您的 ~/.vimrc 中的插件(并指望规范 include guard 以防止以后重新定义):

let mapleader = ','
runtime! plugin/NERD_commenter.vim
runtime! ...
let mapleader = '\'
runime! plugin/mark.vim
...

个别映射配置

然而,由于大多数插件允许通过 <Plug>... 映射(或类似 g:{pluginname}_mapleader 变量的方式)自定义映射,因此这种粗略的隔离应该是不必要的。您可以在 之前 单独配置映射(即在您的 ~/.vimrc 中):

nmap ,cc <Plug>NERDCommenterComment
xmap ,cc <Plug>NERDCommenterComment
nmap <Leader>m <Plug>MarkSet

合适的键

由于大多数钥匙都被拿走了,所以没有太多选择。我想最常见的前缀是:

  • \
  • ,
  • Space

请注意,对于单独的映射配置,一个前缀键就足够了;只需添加额外的键来消除歧义。当然,这意味着调用所有(现在是两键甚至三键)的时间会更长。我通常为命名空间保留 <Leader> 之后的第一个键(例如 <Leader>c... 用于评论,<Leader>s... 用于替换),但这纯粹是个人喜好。