gvim弹出菜单项仅在Nerdtree窗口中
我有以下菜单项gvim弹出菜单项仅在Nerdtree窗口中,vim,menu,popup,nerdtree,Vim,Menu,Popup,Nerdtree,我有以下菜单项 nnoremenu 1.120 PopUp.Add\ &To\ &&Path :call NERDTreeAddNodeToPath()<CR> nnoremenu 1.120弹出窗口。添加\&到\&路径:调用NERDTreeAddNodeToPath() 但我希望它只在Nerdtree窗口中显示,我该怎么做?我想我已经破解了这个,但它并不像我希望的那样漂亮。我编写了一个函数nerdtreemoneutoggle(),如果
nnoremenu 1.120 PopUp.Add\ &To\ &&Path :call NERDTreeAddNodeToPath()<CR>
nnoremenu 1.120弹出窗口。添加\&到\&路径:调用NERDTreeAddNodeToPath()
但我希望它只在Nerdtree窗口中显示,我该怎么做?我想我已经破解了这个,但它并不像我希望的那样漂亮。我编写了一个函数
nerdtreemoneutoggle()
,如果当前缓冲区的文件类型为“nerdtree”,则会将该行添加到弹出菜单中,否则该行将从菜单中删除:
function! NERDTreeMenuToggle()
if &ft == "nerdtree"
nnoremenu 1.120 PopUp.Add\ To\ Path :call NERDTreeAddNodeToPath()<CR>
else
silent! nunmenu PopUp.Add\ To\ Path
endif
endfunction
这似乎起到了作用(尽管我不是NERDTree的普通用户,所以我可能遗漏了一些微妙之处)
另一种方法是在新的文件类型插件中添加行到菜单(只需将nnoremenu
行放在$vim/vimfiles/ftplugin中名为nerdtree.vim的文件中),但这仍然会留下删除非nerdtree缓冲区行的问题,因此我认为上面的解决方案稍微干净一些
au! MenuPopup * :call NERDTreeMenuToggle()