Чи можу я використовувати SPACE як маплейдер у VIM?


84

З http://items.sjbach.com/319/configuring-vim-right я зрозумів, що ви мали змогу використовувати Spaceяк клен у vim. Я пробував, але, здається, це не працює. Той, хто змусив це працювати?

Спробував:

let mapleader = <space>

7
Чудово! Просто прочитайте той самий допис у блозі і знайшов це після спроби <SPACE> ... Я виявив, що в MacVim це не видалило відображення "переміщення одного символу вперед" з пробілу, тому для інших, хто знаходить це від Google - додайте "nnoremap <SPACE> <Nop>" перед "let mapleader ..." це спрацювало для мене.
michiakig

Відповіді:


100

Спробуйте замість цього:

let mapleader=" "

І не забудьте написати наступний рядок перед цим, щоб переконатися, що пробіл заздалегідь не має відображення:

nnoremap <SPACE> <Nop>

19
Як зауважили spacemanaki у вищезазначеному питанні, nnoremap <SPACE> <Nop>для того, щоб це працювало.
Саша

1
@ Саша: справді? Не могли б ви пояснити, чому, і якщо це справді так, то, можливо, вам слід відредагувати питання.
greg0ire

4
Без відображення Саші натискання клавіші <Пробіл> не поводитиметься як інші клавіші як клен. <Space> у звичайному режимі відображається на <right>. Просто натисніть <пробіл> пару разів поспіль, і ви побачите небажану поведінку, яку можна виправити nnoremap <Space> <nop>.
фріо

3
Щоб додати до цієї відповіді, зверніть увагу, що значення mapleadertake впливає лише на відображення, які відбуваються після mapleaderвстановлення. Див :help leader.
evnu

Мені довелося зберегти та закрити файл rc. Я використовував, :source %але космічне перепризначення не працювало.
Джонатан Моралес Велес

67

Mapleader - це змінна рядка Vim. Щоб використовувати простір як лідера, вам слід уникнути спеціального персонажа.

let mapleader = "\<Space>"

Для отримання додаткової інформації див.

http://vimdoc.sourceforge.net/htmldoc/eval.html#expr-quote

РЕДАГУВАТИ:

Це більше не працює для мене у моїй версії Vim. Навіть з пропозицією в коментарях зняти пробіл у звичайному режимі, запустивши nnoremap <SPACE> <Nop>.

Я закінчую рішенням, наведеним у відповіді нижче.

map <Space> <Leader>

1
Крім того, обов’язково використовуйте подвійні лапки "\<Space>"та ні '\<Space>'.
crlane

1
Я віддаю перевагу цій відповіді.
Sang Đặng

let mapleader = "\<Space>"працював у мене в nvim, але не у vim. map <Space> <Leader>також не працює у vim для мене.
Гюнтер Цехбауер,

noremap <Space> <Nop> map <Space> <Leader>працював у vim
Günter Zöchbauer

Мені довелося прибрати місце навколо, =щоб моя працювала на Неовімі.
Nikhil CSB

18

Вищевказані рішення є чудовими, однак у правому нижньому куті команди нічого не відображається. Якщо ви в будь- \якому випадку не користуєтесь ключем, спробуйте скористатися ним map <SPACE> <leader>і \відобразиться в командному кутку. Це, і вам не потрібно спочатку знімати карту, як запропоновано в рекомендаціях вище.


3
Це порушує Коментатор NERD. І принаймні у Vim 8 та Neovim простір відображається так, <20>ніби showcmdввімкнено, тож я думаю, що з достатньо новим Vim ця відповідь застаріла.
user31389

Я просто хочу додати тут, що це також найкраще рішення, якщо ви вже розробили м’язову пам’ять для лідера за замовчуванням, але натомість хочете почати використовувати простір для кращої ефективності. "\ r" все ще входить у мою м'язову пам'ять для відкриття Nerd Tree та використання cscope, тому приємно, що він все ще працює, навіть при відображенні простору до лідера (однак я не відчуваю потреби використовувати Nerd Commenter).
DrEsperanto
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.