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
для деталей.