vimscript: заставить отображение ключей работать только в указанном буфере

Я пишу плагин. Я открыл буфер и добавил в него несколько пунктов меню. Я хочу вызвать какую-то специальную функцию при нажатии клавиши ввода. Я использовал nmap:func(), но клавиша ввода запускала func и в других буферах. Кто-нибудь может сказать мне, как сделать сопоставление клавиш, которое работает только в указанном буфере? Или любые идеи о том, как сделать меню приветствуются, у меня нет опыта в написании плагинов.

Заранее спасибо. С уважением, Дин

1 ответ

Вы можете ограничить сопоставление клавиш текущим буфером, добавив <buffer> к отображению, как это:

nmap <buffer> <CR> :call func()<CR>

Увидеть :help map-arguments для деталей.
Вы можете добавить пункты меню в главное меню через amenu команда:

amenu &MyMenu.MyMenu&Item :call MyFunc()<CR>

Эта команда добавляет новое меню MyMenu и новый пункт меню MyMenuItem в MyMenu.
Вы можете удалить пункт меню (или все меню) через aunmenu команда.
Увидеть :help amenu а также :help aunmenu для деталей.

Другие вопросы по тегам