Vim documentation: usr_09

*usr_09.txt* For Vim version 8.0. 最近更新: 2017年8月 VIM 用户手册 - by Bram Moolenaar 译者: Nek_in http://vimcdoc.sf.net 使用 GUI 版本 Vim 能在一般的终端中很好地工作。GVim 则可以完成相同,甚至更多的功能。Gvim 能提 供菜单,工具条,滚动条和其它东西。本章介绍这些额外的功能。 |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' 标志位。 ============================================================================== *09.2* 使用鼠标 标准是好东西。在微软的 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' 鼠标启动可视模式还是选择模式 ============================================================================== *09.3* 剪贴板 |04.7| 节已经介绍过剪贴板的基本使用了。这里有一个重要的地方要解释一下: 对于 X-windows 系统,有两个地方可以在程序间交换文本,而 MS-Windows 不是这样的。 在 X-Windows,有一个 "当前选择区" 的概念。它表示正被选中的文本。在 Vim 中,这 表示可视区 (假定你正使用默认的设置)。不需要任何其它操作,你就可以把这些文本贴 到别的程序中。 例如,你用鼠标在本文中选中一些文本。Vim 会自动切换到可视模式,并高亮这些文 本。现在启动另一个 gvim,(由于没有指定文件名,它会显示出一个空窗口)。点击鼠标 中键。被选中的文本就会被贴进来。 "当前选择区" 会一直保持有效直到你选中其它文本。在另一个窗口中粘贴文本后, 在这个窗口中选中一些文字,你会发现上一个窗口中选中的文字显示的方法跟原来有些区 别了,这表示这些文字已经不是 "当前选择区" 了。 你不一定要用鼠标来选中文字,用键盘的 "可视" 命令也能达到相同的效果。 "真" 剪 贴 板 对于另一个交换文本的地方,我们称之为 "真" 剪贴板以避免与上面的 "当前选择区" 混 淆。通常 "当前选择区" 和 "真" 剪贴板都称为剪贴板,你需要习惯这些名称。 要把文字拷贝到真剪贴板,在一个 gVim 中选中一些文本,然后执行菜单命令 Edit/Copy。这样文字就被拷贝到真剪贴板了。剪贴板的内容是不可见的,除非你使用特 别的显示程序,例如 KDE 的 klipper 程序。 现在,切换到另一个 gVim,把光标停在某个位置,然后执行菜单命令 Edit/Paste 菜单。你会看到真剪贴板中的内容被插入到当前的光标位置。 使 用 两 种 剪 贴 板 这种同时使用 "当前选择区" 和 "真剪贴板" 的操作方式听起来很乱。但这是很有用的。 我们通过一个例子来说明。用 gvim 打开一个文件并执行如下命令: - 在可视模式下选中两个词 - 使用 Edit/Copy 菜单把这些词拷到剪贴板 - 再用可视模式选中另一个词 - 执行 Edit/Paste 菜单命令。这样第二次选中的词会被前面剪贴板中的词代替。 - 把鼠标移到另一个地方按中键,你会发现你刚被覆盖的单词被粘贴到新的位置。 如果你小心使用 "当前选择区" 和 "真剪贴板" 两个工具,你可以完成很多很有用的工 作。 使 用 键 盘 如果你不喜欢使用鼠标,你可以通过两个寄存器来使用 "当前选择区" 和 "真剪贴板" 两 个剪贴板。"* 寄存器用于表示当前选择区。 要使文本变成 "当前选择区",只要使用可视模式即可。例如,要选中一整行只要输入 "V"。 要拷贝当前选择区的内容: > "*P 注意这里 "P" 是大写,表示把文字拷贝到光标的前面。 "+ 寄存器用于真剪贴板。例如,要把当前光标位置到行末的文本拷到真剪贴板: > "+y$ 记得吧,"y" 是 yank,这是 Vim 的拷贝命令。 要把真剪贴板的内容拷到光标前面: > "+P 这与 "当前选择区" 一样,只是用 (+) 寄存器取代了 (*) 寄存器。 ============================================================================== *09.4* 选择模式 现在介绍一些在 MS-Windows 中比在 X-Windows 中更常被使用的东西 (但在两个系统上 都可用)。你已经了解可视模式了。选择模式与可视模式相似,也是用来选中文字的。但 有一个显著区别: 当输入文本的时候,在选择模式下,被选中的文字将被替换成新输入的 文字。 要启用选择模式,先要激活它 (对于 MS-Windows,可能已经激活了,不过多做一次也没 什么): > :set selectmode+=mouse 现在用鼠标选中一些文本,这些文本会好像可视模式一样被高亮。现在敲入一个字母。被 选中的文本被删除,替换成新的字母。现在已经是插入模式了,你可以继续输入。 由于输入普通文本导致选中的文字被删除,这时你不能使用 "hjkl","w" 等移动命令。 这时可以使用 "Shift" 加功能键。<S-Left> (shift 键加左箭头) 使光标左移。选中的 文字象可视模式一样被扩展或者减少。其它箭头起的作用你也可以猜到了,<S-End><S-Home> 也一样。 你可以通过 'selectmode' 选项修改选择模式的工作方式。 ============================================================================== 下一章: |usr_10.txt| 作大修改