启用/禁用菜单
使用以下命令,可以显示菜单栏:
:set guioptions+=m
使用以下命令,可以隐藏菜单栏:
:set guioptions-=m
查看菜单映射
本质上,菜单项都是由命令定义的行为。使用以下命令,可以列出所有菜单定义的映射:
:menu
如果只需要显示特定的菜单(注意区分大小写),那么可以使用以下命令:
:menu File
命令执行结果的每一行首个字母指明了这个命令的模式。
而以下命令,则可以列出指定菜单项的内容:
:menu File.Save
定义新菜单
Vim编辑器所使用的菜单是由文件$VIMRUNTIME/menu.vim
定义的。
可以使用以下:menu命令,定义新的菜单内容:
:menu [priority] menu-item command-string
menu-item,描述了放置菜单项的路径,比如File.Save表明Save菜单在File菜单下;还可以依次创建子菜单,例如Tabs.Navigation.Next。菜单定义命令示例如下:
:menu 10.340 &File.&Save:w :confirm w
priority,为数字优先级,用于确定放置菜单项的位置。第一个数字10表明在菜单栏上的位置。数字越小越靠近左侧,而数字越大则越靠近右侧;第二个数字340则决定了下拉菜单的位置。数字越小越靠近上部,而数字越大则越靠近下部。如果你在新建菜单命令中没有指定优先级数字,那么默认值为500。你可以使用:help menu-priority
帮助命令,查看Vim内置菜单的位置排列。
&,用于指定快捷键,例如&File.&Save可以表明用Alt-F键来选择File菜单,而用S键来选择保存菜单。
使用以下命令,将新建Tabs.Next菜单:
:menu <silent>Tabs.Next <Esc>:tabnext<cr>
<Esc>,用于进入常规模式;<cr>用于执行命令。
<silent>,将屏蔽命令行的输出。
-SEP-,可以在下拉菜单中新建用于间隔菜单项的虚线。必须是以-开头和结尾的唯一名称;同时必须包含命令,例如以下定义中使用的:空命令。
:menu Tabs.-SEP- :
我们还可以使用以下指定模式的菜单定义命令:
:menu
常规模式, 可视化模式, 操作待决模式:nmenu
常规模式(Normal mode):vmenu
可视化模式(Visual mode):omenu
操作待决模式(Operator-pending mode):imenu
插入模式(Insert mode):cmenu
命令行模式(Command-line mode):amenu
所有模式
菜单实例
如果希望始终显示自己新建的菜单,那么可以在vimrc文件中增加以下代码。请注意:代码不需要包括冒号(:)。
15amenu <silent>Tabs.New :tabnew<cr>amenu Tabs.-SEPT1- :
amenu <silent>Tabs.&Next :tabnext<cr>
amenu <silent>Tabs.&Previous :tabprevious<cr>
amenu Tabs.-SEPT2- :
amenu Tabs.&Close :confirm tabclose<cr>
新建的菜单显示如下:
移除菜单
使用以下命令,可以从菜单中移除指定菜单项:
:[mode]unmenu menu-item
使用以下命令,则会移除所有菜单:
:aunmenu *
:set guioptions+=m | 显示菜单 |
:set guioptions-=m | 隐藏菜单 |
:menu | 查看/新建菜单定义 |
:unmenu | 移除菜单 |