6.11. Привязка команд к клавишам
Проблема
Некоторые команды Vim слишком длинны и сложны. Вы создали собственную коллекцию пользовательских команд и теперь хотели бы назначить комбинации клавиш для их вызова.
Решение
Команда map связывает нажатия клавиш с произвольной командой или текстовой строкой в нормальном режиме; команда map! определяет нажатия клавиш для режима вставки. Чтобы просмотреть текущие назначения, введите команду :map или :map! без параметров.
ВНИМАНИЕ
Будьте осторожны при создании собственных привязок — не используйте клавиши, с которыми в Vim уже связаны операции, поскольку команда map выполнит ваше требование и заменит их, не предупреждая. Именно поэтому сначала стоит как следует освоить Vim, а уже потом приступать к экспериментам с привязкой.
Новая привязка создается командой вида:
:map <F3> :runtime! syntax/2html.vim<CR>
Эта команда включает теги HTML в текущий документ в новом окне. Для её активации будет использоваться клавиша F3.
Удаление привязок осуществляется командой вида:
:unmap <F3>
Имена клавиш, таких как Esc, <CR> (Enter) и функциональные клавиши F2–F12, записываются в специальной форме, потому что при простом нажатии клавиша выполнит привязанную к ней команду.
В следующем примере с клавишей F3 связывается команда, которая включает режим вставки, заключает слово между тегами HTML и выходит из режима вставки, позволяя вам продолжить печать:
:map <F3> i<B><Esc>ea</B><Esc>a
Вот несколько примеров привязок в режиме вставки для быстрого добавления HTML-тегов. Они работают быстро, поскольку выполняются без выхода из режима вставки. Маловероятно, что такие комбинации запятых с буквами встретятся в обычном тексте:
:map! ,ah <a href=""></a>
:map! ,b <B><Esc>ea</B><Esc>a
:map! ,i <I><Esc>ea</I><Esc>a
:map! ,li <LI><Esc>ea</LI><Esc>a
Комментарий
Самыми безопасными для привязки являются клавиши F2–F12 и Shift+F2–F12. Однако эти комбинации быстро заканчиваются на практике. Использование комбинаций вроде «запятая + буква», которые редко встречаются в обычных текстах, позволяет создать столько привязок, сколько нужно.
Полная информация о встроенных привязках Vim выводится командой:
:help map-which-keys
Также можно запросить справку по конкретной клавише или комбинации:
:help CTRL-V
:help F5
:help /b
Помните, что названия клавиш, такие как CTRL и F5, должны быть записаны текстом; не нажимайте их на клавиатуре напрямую при запросе справки.
См. также
Справочная система Vim (:help 2html.vim, :help key-mapping).