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

vimscript:使键映射仅在指定的缓冲区中工作,vim,keymapping,Vim,Keymapping,我正在写一个插件。我打开了一个缓冲区,拖拽了一些菜单项。我想在按下回车键时触发一些特殊功能。我使用了nmap:func(),但enter键也触发了其他缓冲区中的func。 有人能告诉我如何进行只在指定缓冲区中工作的键映射吗? 或者任何关于如何制作菜单的想法都是受欢迎的,我以前没有编写插件的经验 提前谢谢。 当做 Dean您可以通过向映射中添加来限制当前缓冲区的键映射,如下所示: nmap:call func() 有关详细信息,请参见:帮助映射参数。 您可以通过amenu命令将菜单项添加到主菜单:

我正在写一个插件。我打开了一个缓冲区,拖拽了一些菜单项。我想在按下回车键时触发一些特殊功能。我使用了nmap:func(),但enter键也触发了其他缓冲区中的func。 有人能告诉我如何进行只在指定缓冲区中工作的键映射吗? 或者任何关于如何制作菜单的想法都是受欢迎的,我以前没有编写插件的经验

提前谢谢。 当做
Dean

您可以通过向映射中添加
来限制当前缓冲区的键映射,如下所示:

nmap:call func()

有关详细信息,请参见
:帮助映射参数。
您可以通过
amenu
命令将菜单项添加到主菜单:

amenu&MyMenu.MyMenu&Item:调用MyFunc()

此命令将新菜单
MyMenu
和新菜单项
MyMenuItem
添加到MyMenu中。
您可以通过
aunmenu
命令删除菜单项(或整个菜单)。
有关详细信息,请参见
:help-amenu
:help-amenu菜单