星期二, 六月 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<上一篇 | 目录 下一篇>

星期一, 六月 25, 2018

VIM学习笔记 鼠标(Mouse)

启用/禁用鼠标

使用以下命令可以启用鼠标(默认选项):

:set mouse=a

使用以下命令可以禁用鼠标:

:set mouse=""

鼠标选项

在Windows和X Window这两种系统中,使用鼠标的方式是不同的。我们可以定制Vim编辑器,以启用不同的鼠标行为。命令:behave xterm设置使用X Window风格的鼠标行为。而命令:behave mswin则启用Windows风格的鼠标行为。

xterm的鼠标行为Windows的鼠标行为
左键移动光标移动光标
拉动左键在可视化模式下选择文本在选择模式下选中文本
右键选中光标到右键点击处的文本显示弹出菜单
中键在光标处粘贴选中的文本将系统剪切板中的文本粘贴到文件

使用以下命令,可以定义双击之间的最大时间间隔:

:set mousetime=time

其中的时间以毫秒为单位,默认情况下为半秒(500ms)。

使用以下命令,可以设置鼠标的模式为extend,popup,popup_setpos其中之一:

:set mousemodel=mode

在所有模式之下,鼠标左键可以移动光标,拉动左键可以选择文本。在extend模式中,可以使用左键点中起始位置,然后按住Alt键的同时右击结束位置,将选中两点定义的可视化块(visual block)。在popup模式中,右键可以显示弹出菜单。而popup_setpos模式与popup模式相类似,所不同的只是当按下鼠标右键时,光标会移动到鼠标点击处,然后显示弹出菜单。

通过clipboard选项,可以控制Vim如何处理由鼠标选择的文本。使用以下设置,可以将所有鼠标选择的文本放在未命名寄存器中和剪切板寄存器中,这也意味着我们可以将文本粘贴到其他程序中。

:set clipboard=unnamed

如果设置如下选项,那么可视模式下选择的文本就会被放到系统剪切板中:

:set clipboard=autoselect

隐藏鼠标

在图形界面下编辑时,如果认为鼠标光标的存在会打扰你的工作,可以设置隐藏鼠标光标。

:set mousehide

设置之后,当键盘输入时鼠标光标就会隐藏,而移动光标时鼠标光标就会再度出现。

帮助信息

可以使用以下命令,查看关于鼠标使用的更多帮助信息:

:help mouse

:help mouse-using

:help scroll-mousewheel

命令小结
:set mouse=a启用鼠标
:set mouse=""禁用鼠标
:behave控制鼠标的行为
:set mousetime设置双击时间间隔
:set mousemodel设置鼠标模式
:set mousehide隐藏鼠标

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

星期四, 六月 14, 2018

一座城 一本杂志 一股子生命力

香港,《號外》杂志,创刊四十余载,发行超过五百余期,记录城市生活的生命力......

YYQ (@anthony.yuan) 分享的帖子 ·

星期四, 六月 07, 2018

发现新的眼光

YYQ (@anthony.yuan) 分享的帖子 ·