Как я могу узнать, на что настроен <Leader>? И можно ли переназначить <Лидер>?

64

Как я могу выяснить, какой ключ установлен как мой <Leader>, и как мне переназначить его?

krampstudio
источник

Ответы:

62

По умолчанию у вас <leader>есть \, обратный слеш. Вы можете проверить это с:

:echo mapleader

Если это дает вам E121: Undefined variable: mapleader, это означает, что по умолчанию \. Если это дает вам что-то еще, то это так :-)

Вы можете легко переназначить его. Я сопоставил это с пробелом:

:let mapleader = "\<Space>"

Обратите внимание, что значение mapleaderиспользуется в момент определения сопоставления. Итак, этот пример:

let mapleader = ","
nnoremap <Leader>a :echo "Hey there ,"<CR>

let mapleader = "\<Space>"
nnoremap <Leader>a :echo "Hey there space"<CR>

Будет производить два отображения: ,aи <Space>a.

Это означает, что текущее значение mapleaderне обязательно является значением, которое использовалось для определения ваших отображений!

Кроме того, есть maplocalleader, то же, что и mapleader, за исключением того, что оно используется <LocalLeader>и является локальным по отношению к текущему буферу.

Более подробную информацию о <Leader>можно найти в справке Vim с :help mapleader.

OrangeTux
источник
3
Зачем нам нужен обратный слеш "\<Space>"?
thameera
10
Обратная косая черта обязательна, потому что в противном случае vim распознает «<Пробел>» как обычную строку, а не код клавиши пробела. Смотрите :help expr-stringпримеры.
токоями
1
Просто примечание: например, let mapleader = ' 'также работает для установки <Leader>в пространство. Если есть какие-либо возможные побочные эффекты при использовании этого синтаксиса, не стесняйтесь упоминать их.
Даниэль Андерссон
Похоже, что maplocalleaderпо умолчанию также установлена ​​обратная косая черта. Может быть , это то, что имелось в виду под «такой же , как mapleader, но я не был уверен , что в первую очередь.
Марс
Как я могу отменить let mapleader = ","после факта? Я пытался unlet mapleaderтак же хорошо, let mapleader = "\"но это не работает. Мне это нужно, потому что я использую этот пакет github.com/amix/vimrc, где он предлагает свой собственный отдельный файл конфигурации. Связка связывает лидера с запятой, поэтому я хочу отменить это в моем отдельном файле конфигурации.
Майкл
8

Вы можете отобразить текущий ключ лидера, как это :let mapleader

craigp
источник
4
Пробуя это, я получаю E121: Undefined variable: mapleader.
Praxeolitic
Тогда по какой-то причине кленовый носитель не был установлен или был отключен
craigp
5
О, понял. Тогда просто примечание для других, если вы явно не установите ключ лидера, то получите ошибку выше.
Praxeolitic
если вы получаете E121: Undefined variable: mapleader, это означает, что он не был установлен, что будет использовать значение по умолчанию, которое является обратной косой чертой"\"
wisbucky