Что такое <лидер> в файле .vimrc?

1072

Я вижу <leader>во многих .vimrcфайлах, и мне интересно, что это значит?

Для чего его используют?

Просто общий обзор цели и использования было бы здорово.

Боб Мартенс
источник
10
Я начинаю понимать, что, как мне кажется, главное понимание состоит в том, что, используя <leader>в своих сочетаниях клавиш, вы эффективно создаете пространство имен, чтобы ваши настраиваемые сочетания клавиш не влияли на встроенное поведение vim. Смотрите ответ @Pete Schlette ниже для получения дополнительной информации.
Пользователь
3
Если вы хотите проверить, что у вас <leader>есть, используйте :echo mapleaderили :let mapleader. Если значение не определено, оно будет использовать значение по умолчанию, то есть обратную косую черту"\"
wisbucky

Ответы:

986

<Leader>Клавиша отображается \по умолчанию. Так что если у вас есть карта <Leader>t, вы можете выполнить ее по умолчанию с \+ t. Для получения более подробной информации или переназначения его с помощью mapleaderпеременной см.

: помочь руководителю

Чтобы определить отображение, которое использует переменную "mapleader", специальная строка
«<Лидер>» может быть использован. Он заменяется строковым значением «mapleader».
Если «mapleader» не установлен или пуст, вместо него используется обратный слеш.  
Пример:
    : map <Leader> Другая строка <Esc>
Работает как:
    : map \ Другая линия <Esc>
Но после:
    : let mapleader = ","
Это работает как:
    : map, Другая линия <Esc>

Обратите внимание, что значение «mapleader» используется в тот момент, когда отображение
определены. Изменение «mapleader» после этого не имеет никакого эффекта для уже определенного
отображения.


Vereb
источник
48
Изменение ,является хорошим. Намного легче достичь, чем \\ , и кто ,все равно использует vim?
Гейб Моутарт
41
@ Гейб Моутарт. : h, дает вам «Повторите последние f, t, F или T в обратном направлении [количество раз]». Это довольно удобно.
Максим Ким
10
Здесь также есть хорошая рецензия
Сукотто
66
Мне нравится пространство (' ')в качестве клавиши-лидера, потому что я могу нажимать на нее любой рукой, делая одинаково быстрым срабатывание следующей клавиши (будь то на левой или правой стороне клавиатуры). Наличие клавиши-лидера, которая находится только на одной стороне клавиатуры, делает нажатие последующих клавиш на одной и той же стороне клавиатуры более громоздким. Nitpicky, я знаю. :)
Джеффлунт
3
@jefflunt Мой правый большой палец уже неделю, потому что я никогда не использовал его для набора текста. Поэтому я использую только большой палец левой руки для удара пробелов. Думаю, этот ключ космического лидера не дает мне такой же выгоды.
off99555
263

Помните, что когда вы нажимаете <leader>клавишу, у вас есть только 1000 мс (по умолчанию), чтобы ввести команду, следующую за ней.

Это усугубляется тем, что нет визуальной обратной связи (по умолчанию) о том, что вы нажали свою <leader>клавишу, и vim ожидает команду; и поэтому нет никакого визуального способа узнать, когда наступил этот тайм-аут.

Если вы добавите set showcmdк своему, vimrcто увидите, что ваша <leader>клавиша появится в нижнем правом углу vim (слева от расположения курсора), и, что более важно, вы увидите, что она исчезнет, когда истечет время ожидания.

Длительность тайм-аута также может быть установлена ​​у вас vimrc, см. :help timeoutlenДополнительную информацию.

davetapley
источник
11
«: Set showcmd» показывает текущую команду и, следовательно, клавишу лидера, когда она активна.
Грег
4
Из-за отсутствия обратной связи, хотя по умолчанию визуальная обратная связь отсутствует, похоже, что vim будет звучать системный звонок, если он не получит команду в течение 1000 мс после нажатия <leader>.
Бэйли Паркер
114

«Ключ лидера» - это способ расширить возможности сочетаний клавиш VIM, используя последовательности клавиш для выполнения команды. Ключ лидера по умолчанию - это обратная косая черта. Поэтому, если у вас есть карта <Leader> Q, вы можете выполнить это действие, набрав \ Q.

Mikeage
источник
4
\Qв то же время? или первый ` release it and then Q`
Арнольд Роа
9
@ArnoldRoa Когда команды vim перечислены в списке, синтаксис ggdGозначает последовательное нажатие этих четырех клавиш. Подобный синтаксис <C-w><C-j>означает нажатие CTRL + w, за которым следует CTRL + j.
Гобернадор
91

<leader>Ключ Vim - это способ создания пространства имен для команд, которые вы хотите определить. Vim уже отображает большинство клавиш и комбинаций Ctrl+ (некоторые клавиши), поэтому <leader>(some key)вы (или плагины) можете добавить свое поведение.

Например, если вы часто удаляете ровно 3 слова и 7 символов, вам может быть удобно сопоставить команду nmap <leader>d 3dw7xтак, чтобы нажатие клавиши-лидера с последующим d удаляло 3 слова и 7 символов. Поскольку он использует ключ лидера в качестве префикса, вы можете быть (относительно) уверены, что не будете топтаться на каком-либо ранее существовавшем поведении.

Ключ по умолчанию для <leader>- это \, но вы можете использовать команду, :let mapleader = ","чтобы переназначить ее на другую клавишу ( ,в данном случае).

Страница Усевима на ключе лидера содержит больше информации.

Пит Шлетт
источник
предоставленная ссылка 404с.
Еван
8

В моей системе это \ключ. он используется для команд, так что вы можете комбинировать его с другими символами.

Аркаитц Хименес
источник