vimscript:使键映射仅在指定的缓冲区中起作用

时间:2013-01-13 10:26:52

标签: vim keymapping

我正在写一个插件。我打开了一个缓冲区,并在其中显示了一些菜单项。我想在按下回车键时触发一些特殊功能。我使用了nmap:func(),但是输入key也触发了其他缓冲区中的func。 任何人都可以告诉我如何键盘映射仅在指定的缓冲区中有效吗? 或者欢迎任何有关如何制作菜单的想法,我以前没有任何编写插件的经验。

提前致谢。 问候, 迪安

1 个答案:

答案 0 :(得分:2)

您可以通过向映射添加<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