Vim Tips Wiki
Tip 214 Printable Monobook Previous Next

created February 14, 2002 · complexity intermediate · author Tomas Zellerin · version 6.0

If you have different menus for different filetypes, and you want to have only the menu relevant to current buffer displayed, you can use this approach:

In your vimrc:

au BufEnter * if exists('b:BuffEnter')|exec b:BuffEnter|endif
au BufLeave * if exists('b:BuffEnter')|exec b:BuffLeave|endif

In appropriate ftplugin/?.vim, there are assigned commands to create or destroy the menus - here typed in directly, may be of course call to a menu-generating function or whatever.

let b:BuffEnter='amenu C.added ...'
let b:BuffLeave='unmenu! C|unmenu C'