Як я можу дізнатися, для чого встановлено <Leader>? І чи можна зробити перезапис <Leader>?


64

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

Відповіді:


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>можна знайти у довідці Віма щодо :help mapleader.


3
Для чого нам потрібен зворотний нахил "\<Space>"?
thameera

10
Зворотна косої риски потрібна, оскільки в іншому випадку vim розпізнає "<Space>" як звичайний рядок, а не код для клавіші пробілу. Див :help expr-stringприклади.
tokoyami

1
Лише зауваження: наприклад, let mapleader = ' 'також працює для встановлення <Leader>місця. Якщо можливі побічні ефекти, використовуючи цей синтаксис, не соромтесь їх згадувати.
Даніель Андерссон

Здається, що maplocalleaderтакож за замовчуванням встановлено звороту косу рису. Можливо, це означало "те саме mapleader, що я, але я не був впевнений спочатку.
Марс

Як я можу скасувати let mapleader = ","після факту? Я також спробував unlet mapleader, let mapleader = "\"але це не працює. Мені це потрібно, тому що я використовую цей пакет github.com/amix/vimrc, де він пропонує мати власний окремий файл конфігурації. Пакет вказує на лідер комами, тому я хочу скасувати це в моєму окремому конфігураційному файлі.
Майкл

8

Ви можете відобразити поточний ключ лідера таким чином :let mapleader


4
Пробуючи це, я отримую E121: Undefined variable: mapleader.
Праксеоліт

Тоді чомусь Mapleader не був встановлений або був
знятий

5
О, зрозуміло. Тоді лише примітка для інших, якщо ви чітко не встановите ключ лідера, то ви отримаєте помилку вище.
Праксеоліт

якщо ви отримаєте E121: Undefined variable: mapleader, це означає, що він не встановлений, що буде використовувати за замовчуванням, а це зворотна косої риски"\"
wisbucky
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.