次のメニュー項目があります
nnoremenu 1.120 PopUp.Add\ &To\ &&Path :call NERDTreeAddNodeToPath()<CR>
Nerdtree ウィンドウだけに表示したいのですが、どうすればいいですか?
私はこれをクラックしたと思いますが、私が望んでいたほどきれいではありません. NERDTreeMenuToggle()
現在のバッファのファイルタイプが「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
nunmenu
メニュー項目が存在しない場合、エラーを抑制するために暗黙的に呼び出す必要があることに注意してください。次に、この関数がMenuPopup
イベントで呼び出されるように設定する必要があります (つまり、メニューが表示される直前)。
au! MenuPopup * :call NERDTreeMenuToggle()
それはうまくいくようです(ただし、私はNERDTreeの通常のユーザーではないため、いくつかの微妙な点が欠けている可能性があります.
別のアプローチは、新しいファイルタイププラグインのメニューに行を追加することです ( nnoremenu
$VIM/vimfiles/ftplugin の nerdtree.vim というファイルに行を入れるだけです) が、それでも NERDTree 以外のバッファの行を削除するという問題が残ります、したがって、上記の私のソリューションは少しきれいだと思います。