Usr_31

Nvim :help 页面,生成源代码,使用 tree-sitter-vimdoc 解析器。


VIM 用户手册 - 由 Bram Moolenaar 编写
利用 GUI
Vim 在终端中运行良好,但 GUI 有一些额外的功能。可以使用文件浏览器来执行使用文件的命令。可以使用对话框在备选方案之间进行选择。使用键盘快捷键快速访问菜单项。
31.1 文件浏览器 31.2 确认 31.3 菜单快捷键 31.4 Vim 窗口位置和大小 31.5 杂项
下一章: usr_32.txt 撤销树 前一章: usr_30.txt 编辑程序 目录: usr_toc.txt

文件浏览器

使用“文件/打开...”菜单时,会弹出文件浏览器。这使得找到要编辑的文件变得更加容易。但是,如果您想拆分窗口来编辑另一个文件怎么办?没有菜单项为此提供支持。您可以先使用“窗口/拆分”,然后使用“文件/打开...” ,但这需要更多步骤。由于您在 Vim 中键入大多数命令,因此也可以通过键入命令来打开文件浏览器。要使拆分命令使用文件浏览器,请在前面添加“browse”。
:browse split
选择一个文件,然后执行“:split”命令。如果您取消了文件对话框,则不会发生任何操作,窗口不会拆分。您还可以指定一个文件名参数。这用于告诉文件浏览器从哪里开始。示例
:browse split /etc
文件浏览器将弹出,从“/etc”目录开始。
“:browse”命令可以附加到几乎所有打开文件的命令前面。如果没有指定目录,Vim 将决定从哪里开始文件浏览器。默认情况下,它使用上次使用的目录。因此,当您使用“:browse split”并在“/usr/local/share”中选择了文件时,下次使用“:browse”时,它将再次从“/usr/local/share”开始。这可以通过 'browsedir' 选项进行更改。它可以具有以下三个值之一
last 使用上次浏览的目录(默认)buffer 使用与当前缓冲区相同的目录 current 使用当前目录
例如,当您在“/usr”目录中编辑“/usr/local/share/readme”文件时,以下命令
:set browsedir=buffer
:browse edit
将在“/usr/local/share”中启动浏览器。或者
:set browsedir=current
:browse edit
将在“/usr”中启动浏览器。
注意: 为了避免使用鼠标,大多数文件浏览器都提供使用按键导航的功能。由于这在每个系统上都不同,因此这里不再解释。Vim 尽可能使用标准浏览器,您的系统文档应该在某个地方包含对键盘快捷键的说明。
当您不使用 GUI 版本时,可以使用文件资源管理器窗口像在文件浏览器中一样选择文件。但是,这对于“:browse”命令无效。请参阅 netrw-browse.

31.2 确认

Vim 会保护您免受意外覆盖文件和其他可能导致更改丢失的方式。如果您执行了可能导致不好的事情的操作,Vim 会发出错误消息并建议在后面添加 !,如果您真的想执行该操作。为了避免重新键入带有 ! 的命令,您可以让 Vim 弹出一个对话框。然后,您可以按“确定”或“取消”来告诉 Vim 您想要什么。例如,您正在编辑一个文件,并对其进行了更改。您开始使用以下命令编辑另一个文件
:confirm edit foo.txt
Vim 将弹出一个类似于以下内容的对话框
+-----------------------------------+ | | | ? 将更改保存到“bar.txt”? | | | | 是 否 取消 | +-----------------------------------+
现在做出您的选择。如果您确实想保存更改,请选择“是”。如果您要永远丢失更改,请选择“否”。如果您忘记了您在做什么,并且想要检查实际更改的内容,请选择“取消”。您将返回到同一个文件,更改仍然保留在那里。
就像“:browse”一样,“:confirm”命令可以附加到大多数编辑另一个文件的命令前面。它们也可以组合使用
:confirm browse edit
当当前缓冲区发生更改时,这将弹出一个对话框。然后它将弹出一个文件浏览器以选择要编辑的文件。
注意: 在对话框中,您可以使用键盘选择选项。通常,<Tab> 键和光标键会更改选择。按下 <Enter> 会选择选项。不过,这取决于系统。
当您不使用 GUI 时,“:confirm”命令也能正常工作。Vim 不会弹出对话框,而是会在 Vim 窗口底部打印消息,并要求您按下某个键进行选择。
:confirm edit main.c
将更改保存到“Untitled”?
[Y]es, (N)o, (C)ancel
现在,您可以按相应的键进行选择。您无需按下 <Enter>,与命令行上的其他输入不同。

31.3 菜单快捷键

键盘用于所有 Vim 命令。菜单提供了一种简单的方法来选择命令,无需知道它们叫什么。但您必须将手从键盘上移开并抓住鼠标。菜单通常也可以用按键选择。这取决于您的系统,但最常见的是这样。使用 <Alt> 键与菜单中带下划线的字母组合使用。例如,<A-w> (<Alt> 和 w) 会弹出“窗口”菜单。“窗口”菜单中的“拆分”项带下划线的是 p。要选择它,请松开 <Alt> 键并按 p。
在第一次使用 <Alt> 键选择菜单之后,您可以使用光标键在菜单中移动。<Right> 会选择子菜单,<left> 会关闭子菜单。<Esc> 也会关闭菜单。<Enter> 会选择菜单项。
使用 <Alt> 键选择菜单项与使用 <Alt> 键组合进行映射之间存在冲突。'winaltkeys' 选项告诉 Vim 应该如何处理 <Alt> 键。默认值“menu”是明智的选择:如果键组合是菜单快捷键,则无法映射。所有其他键都可用于映射。值“no”不使用任何 <Alt> 键来选择菜单。因此,您必须使用鼠标来选择菜单,并且所有 <Alt> 键都可以映射。值“yes”表示 Vim 将使用所有 <Alt> 键来选择菜单。一些 <Alt> 键组合除了选择菜单之外,可能还会执行其他操作。

31.4 Vim 窗口位置和大小

要查看当前 Vim 窗口在屏幕上的位置,请使用
:winpos
这仅在 GUI 中有效。输出可能类似于以下内容
窗口位置: X 272, Y 103
位置以屏幕像素为单位。现在,您可以使用这些数字将 Vim 移动到其他位置。例如,要将它向左移动 100 个像素,请执行以下操作
:winpos 172 103
注意: 报告的位置与窗口移动的位置之间可能存在少量偏移。这是因为窗口周围存在边框。这是由窗口管理器添加的。
您可以在启动脚本中使用此命令将窗口放置在特定位置。
Vim 窗口的大小以字符计算。因此,这取决于所用字体的尺寸。您可以使用以下命令查看当前大小
:set lines columns
要更改大小,请将 'lines' 和/或 'columns' 选项设置为新值
:set lines=50
:set columns=80
在终端中获取大小与在 GUI 中的工作方式相同。在大多数终端中,无法设置大小。
您可以使用 gvim 的 X-Windows 版本及其参数来指定窗口的大小和位置
gvim -geometry {width}x{height}+{x-offset}+{y-offset}
{width}{height} 以字符为单位,{x-offset}{y-offset} 以像素为单位。示例
gvim -geometry 80x25+100+300

31.5 杂项

您可以使用 gvim 来编辑电子邮件。在您的电子邮件程序中,您必须选择 gvim 作为邮件的编辑器。当您尝试这样做时,您会发现它不起作用:邮件程序认为编辑已经完成,而 gvim 仍在运行!发生的情况是,gvim 与启动它的 shell 断开了连接。当您在终端中启动 gvim 时,这很好,这样您就可以在该终端中执行其他工作。但是,当您真的想等待 gvim 完成时,您必须阻止它断开连接。“-f”参数可以做到这一点
gvim -f file.txt
“-f”代表前台。现在,Vim 将阻塞启动它的 shell,直到您完成编辑并退出。

GUI 的延迟启动

在 Unix 上,可以先在终端中启动 Vim。如果您在同一个 shell 中执行各种任务,这很有用。如果您正在编辑一个文件,并且决定要使用 GUI,那么您可以使用以下命令启动它
:gui
Vim 将打开 GUI 窗口,不再使用终端。您可以继续使用终端执行其他操作。“-f”参数在这里用于在前台运行 GUI。您也可以使用“:gui -f”。
下一章: usr_32.txt 撤销树
版权:请参阅 manual-copyright vim:tw=78:ts=8:noet:ft=help:norl
命令索引
快速参考