Usr_09
Nvim :help
页面,生成 自 源代码 使用 tree-sitter-vimdoc 解析器。
VIM 用户手册 - 由 Bram Moolenaar 编写
使用 GUI
Vim 在普通的终端中运行,而 gVim 则拥有图形用户界面 (GUI)。它可以执行相同的功能,并且还有一些额外的功能。GUI 提供菜单、工具栏、滚动条和其他元素。本章将介绍 GUI 提供的这些额外功能。
GUI 的组成部分
您可能在桌面上有一个启动 gvim 的图标。否则,以下命令之一可以做到
gvim file.txt
vim -g file.txt
如果这不起作用,则您的 Vim 版本不支持 GUI。您需要先安装一个。Vim 将打开一个窗口,并在其中显示 "file.txt"。窗口的外观取决于 Vim 的版本。它应该类似于以下图片(只要可以用 ASCII 显示!)。
+----------------------------------------------------+ | file.txt + (~/dir) - VIM X | <- 窗口标题 +----------------------------------------------------+ | 文件 编辑 工具 语法 缓冲区 窗口 帮助 | <- 菜单栏 +----------------------------------------------------+ | aaa bbb ccc ddd eee fff ggg hhh iii jjj | <- 工具栏 | aaa bbb ccc ddd eee fff ggg hhh iii jjj | +----------------------------------------------------+ | 文件文本 | ^ | | ~ | # | | ~ | # | <- 滚动条 | ~ | # | | ~ | # | | ~ | # | | | V | +----------------------------------------------------+
最大的空间由文件文本占据。这与在终端中显示文件的方式相同。也许颜色不同,字体也不同。
窗口标题
最上面是窗口标题。这是由您的窗口系统绘制的。Vim 将设置标题以显示当前文件名。首先是文件名。然后是一些特殊字符和文件目录,放在括号内。这些特殊字符可能会出现
- 文件无法修改(例如,帮助文件)
+ 文件包含更改
= 文件是只读的
=+ 文件是只读的,但包含更改
如果什么都没显示,则您拥有一个普通的、未更改的文件。
您知道菜单是如何工作的,对吧?Vim 拥有通常的项目,以及一些额外的项目。浏览它们,了解您可以使用它们做什么。一个相关的子菜单是 编辑/全局设置。您将找到以下条目
切换工具栏 使工具栏显示/消失 切换底部滚动条 使滚动条在底部显示/消失 切换左侧滚动条 使滚动条在左侧显示/消失 切换右侧滚动条 使滚动条在右侧显示/消失
它包含最常用操作的图标。希望图标是自解释的。有一些工具提示可以提供额外的提示(将鼠标指针移到图标上,不要点击,并且保持不动一秒钟)。
"编辑/全局设置/切换工具栏" 菜单项可以用来使工具栏消失。如果您永远不想使用工具栏,请在您的 vimrc 文件中使用以下命令
:set guioptions-=T
这将从
'guioptions' 选项中删除 'T' 标志。GUI 的其他部分也可以使用此选项启用或禁用。请参阅它的帮助。
默认情况下,右侧有一个滚动条。它执行显而易见的事情。当您分割窗口时,每个窗口都将获得自己的滚动条。您可以使用菜单项“编辑/全局设置/切换底部滚动条”使水平滚动条出现。这在 diff 模式下很有用,或者当
'wrap' 选项已被重置时(稍后将详细介绍)。
当存在垂直分割的窗口时,只有右侧的窗口将拥有滚动条。但是,当您将光标移动到左侧的窗口时,滚动条将控制这个窗口。这需要一段时间才能适应。当您使用垂直分割的窗口时,请考虑在左侧添加一个滚动条。这可以通过菜单项或
'guioptions' 选项完成
:set guioptions+=l
这将为
'guioptions' 添加 'l' 标志。
标准是美好的。在 Microsoft Windows 中,您可以使用鼠标以标准方式选择文本。X 窗口系统也拥有一个使用鼠标的标准系统。不幸的是,这两个标准并不相同。幸运的是,您可以自定义 Vim。
以下命令使鼠标更像 Microsoft Windows 鼠标
set selection=exclusive
set selectmode=mouse,key
set keymodel=startsel,stopsel
鼠标可以进一步调整。如果您想更改鼠标的工作方式,请查看以下选项
在第
04.7 节中解释了剪贴板的基本用法。关于 X 窗口,还有一件至关重要的事情需要解释:实际上有两个地方可以交换程序之间的文本。MS-Windows 没有这个功能。
在 X 窗口中,存在 "当前选择"。这是当前突出显示的文本。在 Vim 中,这是 Visual 区域(假设您使用的是默认选项设置)。您可以将此选择粘贴到另一个应用程序中,而无需任何其他操作。例如,在此文本中,使用鼠标选择几个单词。Vim 将切换到 Visual 模式并突出显示文本。现在启动另一个 gvim,不带文件名参数,以便它显示一个空窗口。点击鼠标中键。选定的文本将被插入。
"当前选择" 仅在选择其他文本之前保持有效。在另一个 gvim 中完成粘贴后,现在在该窗口中选择一些字符。您将注意到,之前在另一个 gvim 窗口中选择的单词显示方式不同。这意味着它不再是当前选择。
您不需要使用鼠标选择文本,使用键盘命令来执行 Visual 模式同样有效。
真正的剪贴板
现在来谈谈另一个可以交换文本的地方。我们称之为 "真正的剪贴板",以避免混淆。通常,“当前选择” 和 "真正的剪贴板" 都被称为剪贴板,您需要适应这一点。要将文本放在真正的剪贴板上,请在一个运行的 gvim 中选择几个不同的单词。然后使用“编辑/复制” 菜单项。现在文本已被复制到真正的剪贴板。您无法看到它,除非您拥有某个显示剪贴板内容的应用程序(例如,KDE 的 Klipper)。现在选择另一个 gvim,将光标定位在某个地方,然后使用“编辑/粘贴” 菜单。您将看到真正的剪贴板上的文本被插入。
同时使用两者
这种同时使用 "当前选择" 和 "真正的剪贴板" 的方式听起来可能有点令人困惑。但它非常有用。让我们用一个例子来展示这一点。使用一个带有文本文件的 gvim,并执行以下操作
在 Visual 模式中选择两个单词。
使用“编辑/复制” 菜单将这些单词放到剪贴板。
在 Visual 模式中选择另一个单词。
使用“编辑/粘贴” 菜单项。将会发生的是,单个选定单词将被剪贴板上的两个单词替换。
将鼠标指针移动到其他位置,然后点击鼠标中键。您将看到您刚用剪贴板覆盖的单词在这里被插入。
如果您小心地使用 "当前选择" 和 "真正的剪贴板",您可以使用它们进行很多有用的编辑操作。
使用键盘
如果您不喜欢使用鼠标,您可以使用两个寄存器访问当前选择和真正的剪贴板。"* 寄存器用于当前选择。要使文本成为当前选择,请使用 Visual 模式。例如,要选择整行,只需按 "V"。要将当前选择插入光标之前
"*P
请注意大写的 "P"。小写的 "p" 将文本放在光标之后。
"+ 寄存器用于真正的剪贴板。例如,要将从光标位置到行尾的文本复制到剪贴板
"+y$
请记住,"y" 是 yank,它是 Vim 的复制命令。要将真正的剪贴板的内容插入光标之前
"+P
这与当前选择相同,但使用加号 (+) 寄存器而不是星号 (*) 寄存器。
现在来谈谈在 MS-Windows 上比在 X-Windows 上使用频率更高的东西。但两者都可以做到。您已经了解了 Visual 模式。选择模式类似于 Visual 模式,因为它也用于选择文本。但有一个明显的区别:键入文本时,选定的文本会被删除,键入的文本会替换它。
要开始使用选择模式,您必须先启用它(对于 MS-Windows,它可能已经启用,但您仍然可以执行此操作)
:set selectmode+=mouse
现在使用鼠标选择一些文本。它会像在 Visual 模式中一样被突出显示。现在按一个字母。选定的文本会被删除,单个字母会替换它。您现在处于 Insert 模式,因此您可以继续键入。
由于键入普通文本会导致选定文本被删除,因此您不能使用正常的移动命令 "hjkl"、"w" 等。相反,请使用 Shift 键和功能键组合。<S-Left>
(Shift 键和左箭头键组合)将光标向左移动。选定的文本将像在 Visual 模式中一样更改。其他 Shift 键和方向键组合将按预期执行操作。<S-End>
和 <S-Home>
也适用。