usr_09.txt 适用于 Vim 9.0 版本。 最近更新: 2019年12月
VIM 用户手册 - by Bram Moolenaar
译者
: Nek_in
使用 GUI 版本
Vim 能在一般的终端中很好地工作。gVim 则提供了图形用户界面 (GUI)。它可以完成相
同,甚至更多的功能。GUI 能提供菜单,工具条,滚动条和其它东西。本章介绍 GUI 这
些额外的功能。
09.1 GUI 版本的组件
09.2 使用鼠标
09.3 剪贴板
09.4 选择模式
下一章: usr_10.txt 做大修改
前一章: usr_08.txt 分割窗口
目录: usr_toc.txt
09.1 GUI 版本的组件
你可以在你的桌面上放一个启动 gvim 的图标。此外,下面的任一个命令也可以启动
gvim:
gvim file.txt
vim -g file.txt
如果这样不行,可能是因为你的 Vim 不支持 GUI 版本特性。你需要先安装一个合适的版
本。
执行命令后,Vim 会打开一个窗口,并显示文件 "file.txt"。窗口的样子取决于
Vim 的版本。一般是下面这个样子 (尽可能地用 ASCII 码展示):
+----------------------------------------------------+
| file.txt + (~/dir) - VIM X | <- 窗口标题
+----------------------------------------------------+
| File Edit Tools Syntax Buffers Window Help | <- 菜单栏
+----------------------------------------------------+
| aaa bbb ccc ddd eee fff ggg hhh iii jjj | <- 工具栏
| aaa bbb ccc ddd eee fff ggg hhh iii jjj |
+----------------------------------------------------+
| file text | ^ |
| ~ | # |
| ~ | # | <- 滚动条
| ~ | # |
| ~ | # |
| ~ | # |
| | V |
+----------------------------------------------------+
最大的一片空间是文件的内容。这部分与终端上看到的是一样的,只是颜色和字体可能有
一点差别。
窗 口 标 题
窗口最顶上是窗口标题。这由你的窗口系统绘制。Vim 会在这个标题上显示当前文件的相
关信息。首先显示的是文件名,然后是一个特殊字符,最后是用括号括住的目录名。下面
是这些特殊字符的含义:
- 文件不能被修改 (例如帮助文件)
+ 已经被修改过
= 文件只读
=+ 文件只读,但仍被修改过
如果没有显示任何特殊字符,表示这是一个普通的,没有改过的文件。
菜 单 栏
你知道菜单是怎么工作的,是吧? Vim 有些通用的菜单,外加一些特别的。逐个看看,
猜测一下这些菜单都可以用来干什么。另一个相关的子菜单是 Edit/Global,你可以在那
里找到这些菜单项:
Toggle Toolbar 使工具条可见/不可见
Toggle Bottom Scrollbar 使底部的滚动条可见/不可见
Toggle Left Scrollbar 使左边的滚动条可见/不可见
Toggle Right Scrollbar 使右边的滚动条可见/不可见
在大多数系统里,你可以把菜单 "撕下来"。选中菜单最上面的菜单栏,就是那个看起来
像条虚线的。这样你可以得到一个分离的菜单,里面包括了所有菜单项。它会一直挂在那
里,直到你关闭它。
工 具 栏
这里包括使用最频繁的操作的图标。希望这些图标功能显而易见。另外,每个图标都支持
"工具提示" (把鼠标移上去停一会儿就能看见这个提示)
"Edit/Global Settings/Toggle Toolbar" 菜单项可以关闭工具条。如果你从来都不使用
工具条,可以在 vimrc 文件中加上:
:set guioptions-=T
这个命令从 'guioptions' 中删除 "T" 标记。其它 GUI 部件也可以通过这种方法激活或
关闭。参见这个选项的相关帮助。
滚 动 条
默认情况下,右边会有一个滚动条,它的作用是很明显的。当你分割窗口的时候,每个窗
口都会有自己的滚动条。
你可以通过 "Edit/Global Settings/Toggle Bottom Scrollbar" 来启动一个水平滚
动条。这在比较模式或没有设置 'wrap' 时非常有用 (后面有更多描述)。
在使用垂直分割的时候,只有右边的窗口有滚动条,但当你把光标移到左边的窗口上,右
边的滚动条会对这个窗口起作用,这需要一些时间去适应。
当你使用垂直分割的时候,可以考虑把滚动条放在左边。这可以通过菜单激活,或者
使用 'guioptions' 选项:
:set guioptions+=l
这是在 'guioptions' 中增加 'l' 标志位。
标准是好东西。在微软的 Windows 操作系统中,你可以用标准模式选中文本。X Windows
也有一套使用鼠标的标准。非常不幸,这两套标准是不同的。
幸运的是,你可以定制 Vim。你可以让你的鼠标行为像 X Windows 或者像微软
Windows 的鼠标。下面的命令使鼠标用起来像 X Windows:
:behave xterm
而如下命令使鼠标用起来像微软 Windows:
:behave mswin
在 UNIX 操作系统中,默认的鼠标行为是 xterm。而默认的微软 Windows 系统的鼠标行
为是在安装的时候选定的。要了解这两种行为的详细信息,请参考 :behave 。下面是一
些摘要:
XTERM 鼠 标 行 为
左键单击 定位光标
左键拖动 在可视模式下选中文本
中键单击 从剪贴板中粘贴文本
右键单击 把选中的文本扩展到当前的光标位置
微软 Windows 鼠标行为
左键单击 定位光标
左键拖动 在选择模式下选中文本 (参见 09.4 )
按住 Shift,左键单击 把选中的文本扩展到当前的光标位置
中键单击 从剪贴板中粘贴文本
右键单击 显示一个弹出式菜单
可以进一步定制鼠标。请参见下面的选项:
'mouse' 鼠标的使用模式
'mousemodel' 鼠标单击的效果
'mousetime' 双击的间隔允许时间
'mousehide' 输入的时候隐藏鼠标
'selectmode' 鼠标启动可视模式还是选择模式
04.7 节已经介绍过剪贴板的基本使用了。这里有一个重要的地方要解释一下: 对于
X-windows 系统,有两个地方可以在程序间交换文本,而 MS-Windows 不是这样的。
在 X-Windows,有一个 "当前选择区" 的概念。它表示正被选中的文本。在 Vim 中,这
表示可视区 (假定你正使用默认的设置)。不需要任何其它操作,你就可以把这些文本贴
到别的程序中。
例如,你用鼠标在本文中选中一些文本。Vim 会自动切换到可视模式,并高亮这些文
本。现在启动另一个 gvim,(由于没有指定文件名,它会显示出一个空窗口)。点击鼠标
中键。被选中的文本就会被贴进来。
"当前选择区" 会一直保持有效直到你选中其它文本。在另一个 gvim 中粘贴文本
后,在这个窗口中选中一些文字,你会发现上一个窗口中选中的文字显示的方法跟原来有
些区别了,这表示这些文字已经不是 "当前选择区" 了。
你不一定要用鼠标来选中文字,用键盘的 "可视" 命令也能达到相同的效果。
"真" 剪 贴 板
对于另一个交换文本的地方,我们称之为 "真" 剪贴板以避免与上面的 "当前选择区" 混
淆。通常 "当前选择区" 和 "真" 剪贴板都称为剪贴板,你需要习惯这些名称。
要把文字拷贝到真剪贴板,在一个 gvim 中选中一些文本,然后执行菜单命令
Edit/Copy。这样文字就被拷贝到真剪贴板了。剪贴板的内容是不可见的,除非你使用特
别的显示程序,例如 KDE 的 klipper 程序。
现在,切换到另一个 gvim,把光标停在某个位置,然后执行菜单命令 Edit/Paste
菜单。你会看到真剪贴板中的内容被插入到当前的光标位置。
使 用 两 种 剪 贴 板
这种同时使用 "当前选择区" 和 "真剪贴板" 的操作方式听起来很乱。但这是很有用的。
我们通过一个例子来说明。用 gvim 打开一个文件并执行如下命令:
- 在可视模式下选中两个词
- 使用 Edit/Copy 菜单把这些词拷到剪贴板
- 再用可视模式选中另一个词
- 执行 Edit/Paste 菜单命令。这样第二次选中的词会被前面剪贴板中的词代替。
- 把鼠标移到另一个地方按中键,你会发现你刚被覆盖的单词被粘贴到新的位置。
如果你小心使用 "当前选择区" 和 "真剪贴板" 两个工具,你可以完成很多很有用的工
作。
使 用 键 盘
如果你不喜欢使用鼠标,你可以通过两个寄存器来使用 "当前选择区" 和 "真剪贴板" 两
个剪贴板。"* 寄存器用于表示当前选择区。
要使文本变成 "当前选择区",只要使用可视模式即可。例如,要选中一整行只要输入
"V"。
要拷贝当前选择区的内容:
"*P
注意
这里 "P" 是大写,表示把文字拷贝到光标的前面。
"+ 寄存器用于真剪贴板。例如,要把当前光标位置到行末的文本拷到真剪贴板:
"+y$
记得吧,"y" 是 yank,这是 Vim 的拷贝命令。
要把真剪贴板的内容拷到光标前面:
"+P
这与 "当前选择区" 一样,只是用 (+) 寄存器取代了 (*) 寄存器。
现在介绍一些在 MS-Windows 中比在 X-Windows 中更常被使用的东西 (但在两个系统上
都可用)。你已经了解可视模式了。选择模式与可视模式相似,也是用来选中文字的。但
有一个显著区别: 当输入文本的时候,在选择模式下,被选中的文字将被替换成新输入的
文字。
要启用选择模式,先要激活它 (对于 MS-Windows,可能已经激活了,不过多做一次也没
什么):
:set selectmode+=mouse
现在用鼠标选中一些文本,这些文本会好像可视模式一样被高亮。现在敲入一个字母。被
选中的文本被删除,替换成新的字母。现在已经是插入模式了,你可以继续输入。
由于输入普通文本导致选中的文字被删除,这时你不能使用 "hjkl","w" 等移动命令。
这时可以使用 "Shift" 加功能键。<S-Left>
(shift 键加左箭头) 使光标左移。选中的
文字像可视模式一样被扩展或者减少。其它箭头起的作用你也可以猜到了,<S-End>
和
<S-Home>
也一样。
你可以通过 'selectmode' 选项修改选择模式的工作方式。