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

arp*_*pit 2 vi vim

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

Ing*_*kat 5

改变了枫树

由于在mapleader定义映射时使用的值,您确实可以在插件加载时更改它.为此,你必须明确地:runtime插入你的插件~/.vimrc(并依靠规范包含防护以防止以后重新定义):

let mapleader = ','
runtime! plugin/NERD_commenter.vim
runtime! ...
let mapleader = '\'
runime! plugin/mark.vim
...
Run Code Online (Sandbox Code Playgroud)

单独的映射配置

但是,由于大多数插件允许通过<Plug>...映射(或者像g:{pluginname}_mapleader变量之类的东西)自定义映射,因此不需要这种粗略的隔离.您可以在插件来源之前(即在您的插件中)单独配置映射~/.vimrc:

nmap ,cc <Plug>NERDCommenterComment
xmap ,cc <Plug>NERDCommenterComment
nmap <Leader>m <Plug>MarkSet
Run Code Online (Sandbox Code Playgroud)

合适的钥匙

由于大多数密钥被采用,因此没有太多替代方案.我想最常见的前缀是:

  • \
  • ,
  • Space

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