星期二, 六月 26, 2018

VIM学习笔记 菜单(Menu)

启用/禁用菜单

使用以下命令,可以显示菜单栏:

:set guioptions+=m

使用以下命令,可以隐藏菜单栏:

:set guioptions-=m

查看菜单映射

本质上,菜单项都是由命令定义的行为。使用以下命令,可以列出所有菜单定义的映射:

:menu

如果只需要显示特定的菜单(注意区分大小写),那么可以使用以下命令:

:menu File

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>

新建的菜单显示如下:

Menu_Tabs

移除菜单

使用以下命令,可以从菜单中移除指定菜单项:

:[mode]unmenu menu-item

使用以下命令,则会移除所有菜单:

:aunmenu *

命令小结
:set guioptions+=m显示菜单
:set guioptions-=m隐藏菜单
:menu查看/新建菜单定义
:unmenu移除菜单

Ver: 2.0 | YYQ<上一篇 | 目录 下一篇>

没有评论:

发表评论