.vimrc文件中的<leader>是什么?


1068

我看到<leader>了很多.vimrc文件,我想知道这是什么意思?

这有什么用途?

仅仅对目的和用法进行一般性概述就可以了。


10
我开始意识到,我认为关键的理解是,通过<leader>在键盘快捷键中使用,可以有效地创建一个名称空间,以便您的自定义快捷键不会踩踏内置的vim行为。有关更多信息,请参见下面的@Pete Schlette答案。
用户

3
如果要检查您的身份,请<leader>使用:echo mapleader:let mapleader。如果未定义,则它将使用默认值,即反斜杠"\"
wisbucky19年

Answers:


984

<Leader>键映射到\默认。因此,如果您有的地图<Leader>t,则可以默认使用\+ 执行它t。有关更多详细信息或使用mapleader变量进行重新分配,请参见

:帮助负责人

要定义使用“ mapleader”变量的映射,特殊字符串
可以使用“ <Leader>”。将其替换为“ mapleader”的字符串值。
如果“ mapleader”未设置或为空,则使用反斜杠代替。  
例:
    :map <Leader>另一行<Esc>
像这样工作:
    :map \另一行<Esc>
但是之后:
    :let mapleader =“,”
它的工作原理如下:
    :map,另一行<Esc>

请注意,在映射为当前时使用“ mapleader”的值
定义。之后更改“ mapleader”对已定义的对象无效
映射。



48
更改,为一个不错的选择。比起容易得多\\ ,还有谁,在vim中使用?
·穆阿特

41
@Gabe Moothart。:h,将为您提供“以相反的方向[count]次重复最新的f,t,F或T”。这很方便。
Maxim Kim


66
我喜欢空格(' ')作为引导键,因为我可以用任何一只手敲击它,从而使跟进键(无论是在键盘的左侧还是右侧)随后都可以很快触发。拥有仅位于键盘一侧的引导键会使击打键盘同一侧上的跟进键变得更加麻烦。Nitpicky,我知道。:)
jefflunt

3
@jefflunt我的右手拇指已经放了一周,因为我从未用它来打字。所以我只用左拇指打空格。我猜,那个太空领袖钥匙不能给我带来同样的好处。
2013年

263

请注意,当您确实按下<leader>按键时,只有1000ms(默认情况下)可以输入其后的命令

由于没有任何视觉上的反馈(默认情况下),您按下了该<leader>键并且vim正在等待命令,这使情况更加恶化。因此也没有视觉方法可以知道何时发生超时。

如果添加set showcmd到,vimrc那么您将看到您的<leader>密钥出现在vim的右下角(在光标位置的左侧),也许更重要的是,当超时发生时,您会看到它消失

超时时间长度也可以在您的中设置vimrc:help timeoutlen有关更多信息,请参见。


11
«:set showcmd»显示当前命令,因此在激活时显示领导键。
greg

4
由于缺乏反馈,虽然默认情况下没有视觉反馈,但如果在按下后1000毫秒内未收到命令,vim会发出系统铃声<leader>
Bailey Parker

113

“领导键”是一种通过使用键序列来执行命令来扩展VIM快捷键功能的方法。默认的领导者键是反斜杠。因此,如果您有<Leader> Q的映射,则可以通过键入\ Q来执行该操作。


4
\Q与此同时?或第一个` release it and then Q`
Arnold Roa

9
@ArnoldRoa每当列出vim命令时,该语法ggdG意味着依次按这四个键。类似的语法<C-w><C-j>表示按CTRL + w,然后按CTRL + j。
gobernador

91

Vim的<leader>键是一种为要定义的命令创建名称空间的方法。Vim已经映射了大多数键和Ctrl+(某些键)的组合,因此<leader>(some key)您(或插件)可以在其中添加自定义行为。

例如,如果发现自己经常删除正好3个单词和7个字符的字符,则可能会发现映射命令很方便,nmap <leader>d 3dw7x因此按领导键并按d将删除3个单词和7个字符。因为它使用前导密钥作为前缀,所以(相对)可以确保您没有踩踏任何先前存在的行为。

的默认键<leader>\,但是您可以使用命令:let mapleader = ","将其重新映射到另一个键(,在这种情况下)。

领导键上的Usevim页面上有更多信息。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.