![](/img/trans.png)
[英]Why vim's <Leader> key not working when I want to use bufexplorer or vim-buffergator plugin?
[英]When should i use <leader> mapping in vim?
我是vim的新手。 我正在尝试在vim中重新映射。
当我使用时:
map <leader>cp <Esc>:CtrlP<return>
nmap cp :CtrlP<return>
它做同样的事情。
我知道<leader>
是什么。 但是我想知道普通映射和<leader>
映射之间的区别。
那么它们之间有什么区别呢? 什么时候应该使用<leader>
进行映射?
您说您知道<Leader>
是什么,但请确保我再说一遍: <Leader>
允许您定义可用于映射的键盘键的别名。 默认值为\\
但是您可以使用mapleader
更改此键。 例如:
let mapleader="\<Space>"
允许您使用空格键作为领导者。
之后,让我们仔细看看map
和nmap
:
map
map创建一个存在于3种模式中的映射:Normal,Visual和Operator-pending模式。
nmap
创建仅在正常模式下存在的映射。
(有关更多详细信息,请参见:h map
以及其他可能的命令,例如vmap
, imap
等。)
现在介绍您的两个映射:
map <leader>cp <Esc>:CtrlP<return>
这意味着当您处于普通模式,可视模式或操作员暂挂模式时,如果按Lead + c + p ,由于<Esc>
和调用该函数以打开Ctrlp
nmap cp :CtrlP<return>
而此映射表示在正常模式下,按c + p将调用该函数以打开CtrlP。
所以当你说:
它做同样的事情
我猜您在正常模式下尝试按Leader + c + p以及c + p都打开了CtrlP。 这是预期的行为,因为您将两个键组合都映射到了相同的动作,而且我怀疑您是在同一vim会话中这样做的,没有清理先前的映射。
如果用nmap cn :CtrlP<return>
替换第二个映射,您会看到c + p将不会打开CtrlP, Leader + c + p将打开CtrlP,而c + n将打开。
最后回答您的问题的标题“我何时应该在vim中使用<Leader>
映射”,我想说这取决于您的工作流程,我不确定您能否给出一个好的答案(也就是说,哪个不是纯粹是主观的)。 只需尝试找到最适合您需求的内容即可。
奖金也为你将来的映射考虑使用noremap
, nnoremap
, vnoremap
等等......这禁用递归映射,可以为你节省很多的麻烦。
红利2对于与vim相关的问题,您可能会对vim stackechange网站感兴趣,该网站反应非常活跃 (在我撰写此答案时,有95%的问题都有答案)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.