如何在vim中映射<c-leader>?

Arn*_*psa 7 vim keymapping

我想映射ctrl + leader key.可能吗?

尝试: :nnoremap <c-leader> :CtrlP<CR>

它不起作用.

(ctrlp绑定与yankring绑定冲突)

Ing*_*kat 13

<Leader>是Vim中的特殊键符号; 因此,它不能与诸如的修饰语结合使用C-.假设它的默认设置(即\),您可以使用:

nnoremap <c-\> :CtrlP<CR>
Run Code Online (Sandbox Code Playgroud)


rom*_*inl 6

这里有两个问题:

  1. 您没有阅读CtrlP的文档,您可以在其中找到:

    Use this option to change the mapping to invoke CtrlP in Normal mode:
        let g:ctrlp_map = '<c-p>'
    
    Run Code Online (Sandbox Code Playgroud)
  2. <leader> 应该是在映射中使用常用修饰键(Alt,Ctrl,Shift,Cmd)的跨平台替代方法.

    通常情况下,你可以使用<leader>代替<Ctrl>,如:

    nnoremap <leader>p :CtrlP<CR>
    
    Run Code Online (Sandbox Code Playgroud)

您的~/.vimrc遗嘱中的这一行可能会解决您的问题:

let g:crtlp_map='<F11>'
Run Code Online (Sandbox Code Playgroud)

虽然这对我的CtrlP的映射没有多大帮助:

nnoremap <leader>f :CtrlP<CR>
nnoremap <leader>b :CtrlPBuffer<CR>
nnoremap <leader>m :CtrlPMRUFiles<CR>
nnoremap <leader>t :CtrlPTag<CR>
Run Code Online (Sandbox Code Playgroud)

  • `<F11>`是一个例子,你可以把它映射到你想要/可用的任何东西.Ingo解释了第二个问题:`<leader>`是一个不能与修饰符组合的特殊键.我刚刚提供了一个正确用法的例子. (4认同)