Преобразование специальных символов в vim

573
Adam Hunyadi

Я совсем новичок в Vim, и мне не нравится, что основные кнопки движения отображаются на hjkl, так hи jпредназначены для нажатия с тем же пальцем. Я использую венгерскую клавиатуру, которая имеет еще 3 символа справа от l:, éáűпоэтому я хотел бы воспользоваться этим и переназначить эти клавиши. Однако, ВИМ, кажется, не признает эту команду: noremap é l. Как мне этого добиться?

1

1 ответ на вопрос

2
GregHNZ

Страница vim использует nnoremapдва «n» в начале вместо одного.

http://vim.wikia.com/wiki/Mapping_keys_in_Vim_- Учебник (Часть_1)

У меня нет венгерской клавиатуры, но с русской раскладкой мне удалось получить

nnoremap э l

Чтобы заставить Э передвинуть 1 персонажа вправо.

редактировать

Vim (классно) - модальный редактор, то есть он ведет себя по-разному в разных режимах, и вы переключаетесь между ними.

Приведенная выше команда выполняет сопоставление клавиш для «нормального» режима, который, по-видимому, означает «перемещаться и ничего не делать»

В этой таблице показаны доступные команды сопоставления для различных режимов.

Commands Mode -------- ---- nmap, nnoremap, nunmap Normal mode imap, inoremap, iunmap Insert and Replace mode vmap, vnoremap, vunmap Visual and Select mode xmap, xnoremap, xunmap Visual mode smap, snoremap, sunmap Select mode cmap, cnoremap, cunmap Command-line mode omap, onoremap, ounmap Operator pending mode 

Чтобы сделать что-то вроде 2dkработы, вам нужно сделать сопоставление для «Режим ожидания оператора»:

onoremap э l

«Режим командной строки» не делал то, что я хотел - это означало, что когда я пытался набрать «э» для следующей команды переназначения, я получил «l».

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

Это отлично работает для движения, но не работает, когда я использую его в комбинированных командах, таких как `` `2dk```. Есть ли способ заставить его работать должным образом? Adam Hunyadi 6 лет назад 0
Вам также необходимо добавить `conoremap-e`` для режима командной строки. Shadoath 6 лет назад 0