help <Help> :h :help <F1> i_<F1> i_<Help>
<Help> 或
:h[elp] 打开窗口,以只读方式显示帮助文档。已有帮助窗口时,继续
使用该窗口。否则如果当前窗口宽度占据全屏或不少于 80
列,在当前窗口正上方打开帮助窗口。再不然在屏幕顶部打开
帮助窗口。
主帮助文件有多个语言版本时,会根据 'helplang' 选项选用
语言。
{subject} E149 E661
:h[elp] {subject} 和 :help 类似,但直接跳转到 {subject} 标签。
例如:
:help options
{subject} 支持 "*"、"?" 和 "[a-z]" 等通配符:
:help z? 查看以 "z" 开头的命令帮助
:help z. 查看 "z." 命令帮助
存在对应精确标签时,优先按本义匹配:
:help :? 查看 ":?" 命令帮助
无完全匹配或存在多个匹配时,选用 "最佳" 匹配。优先级算
法考虑以下诸多因素:
- 大小写完全一致的匹配优先。
- 非字母数位字符之后的匹配优先于单词中间的匹配。
- 标签靠前位置的匹配优先。
- 匹配字母数位字符数量多者优先 (译者注: 此处有误,应为
数量少者优先)。
- 匹配长度短者优先。
{subject} 有多个语言版本时,会根据 'helplang' 选项选用
语言。要强制指定语言版本,可在标签后附加 "@ab",其中
"ab" 是双字母语言代码。参见 help-translated 。
注意 输入的 {subject} 越长,匹配到的结果就越少。可用命
令行补全功能 (输入 `:help subject` 后按下 CTRL-D
c_CTRL-D ) 直观了解匹配规则。
有多个匹配时,按下 CTRL-D 可列出所有匹配条目。例如:
:help cont<Ctrl-D>
要查询 CTRL-V 帮助,无需完整书写 `:help CTRL-V`,可
用:
:help ^V
也适用于与正常字符混用的情况。例如要查询插入模式下的
CTRL-V 帮助:
:help i^V
也可先输入 :help 进行帮助页,再用 ":tag {pattern}"。
此时可用 :tnext 命令切换到下一个匹配项, :tselect
命令列出全部匹配项并手动选择。
:help index
:tselect /.*mode
无参数检索时,会使用最近 "help" 命令使用的条目,而非列
出所有可能匹配 (那会非常缓慢)。
单次最多显示 300 条结果。
:help 命令可后跟 '|' 串接其他命令。但无需转义帮助主
题里的 '|' 字符。以下都正确:
:help |
:help k| only
注意 '|' 之前的空格会被视为 ":help" 参数的一部分 (译者
注: 前者查找 "|" 的帮助,后者查找 "k" 的帮助并执行
:only 命令使帮助窗口成为唯一窗口,具体实现是 '|' 后
有其他字符时用作命令分隔符,而以 '|' 或 '||' 结尾时则
是参数一部分)。
也可用 <NL> 或 <CR> 分隔 :help 命令和后续命令。输入
时需要先输入 CTRL-V,再输入 <NL> 或 <CR> 键。例如:
:help so<C-V><CR>only
:h[elp]! [subject] 和 :help 类同,但在非英语帮助文档中,优先查找和当前
文档语言一致的帮助标签。参见 help-translated 。
:helpc :helpclose
:helpc[lose] 关闭帮助窗口 (如有)。
Vim 会试图恢复帮助窗口打开前的窗口布局与光标位置。该操
作可能会触发若干自动命令。
:helpg :helpgrep
:helpg[rep] {pattern}[@xx]
搜索所有帮助文档,列出所有的 {pattern} 匹配。先跳转到
其中首个匹配项。
可选后缀 [@xx] 仅检索 "xx" 语言中的匹配。
可用 quickfix 系列命令浏览其他匹配项。如 :cnext 会
跳转到下一条匹配项。 :cwindow 会在快速修复窗口里列出
所有匹配项。
{pattern} 遵循 Vim 正则表达式 pattern 语法。
缺省区分大小写,不考虑 'ignorecase' 选项,但可添加
"\c" 显式忽略大小写 ( /\c )。
大小写敏感搜索示例:
:helpgrep Uganda
大小写不敏感搜索示例:
:helpgrep uganda\c
仅搜索中文帮助文档示例:
:helpgrep backspace@cn
不支持跨行模式,必须在单行内完成匹配。虽然可以改用
:grep ,但需要以较复杂方式获取帮助文件列表。
不支持用 '|' 串接其他命令。所有内容都用作模式。如需组
合命令,可用 :execute 。
不搜索压缩过的帮助文件 (Fedora 等系统会压缩帮助文件)。
:lh :lhelpgrep
:lh[elpgrep] {pattern}[@xx]
和 :helpgrep 类似,但使用位置列表而非快速修复列表。
已有帮助窗口时,存入该窗口的位置列表。不然,新建帮助
窗口并绑定该窗口的位置列表,不影响当前窗口的位置列表。
:exu :exusage
:exu[sage] 显示 Ex 命令总览。该命令为兼容 Nvi 而增设。
:viu :viusage
:viu[sage] 显示普通命令总览。该命令为兼容 Nvi 而增设。
参数省略时, :help 会打开 'helpfile' 选项指定的文档。参数给出时,会在
'runtimepath' 目录下所有 "doc/tags" 标签文件里搜索对应标签。
可通过 'helpheight' 选项设置帮助窗口初始高度 (缺省是 20)。
要使用当前窗口打开帮助内容,可安装 helpcurwin 可选包。见 help-curwin 。
help-buffer-options
创建帮助缓冲区时,会自动设置若干局部选项,确保以预定风格显示帮助文档:
'iskeyword' 除 ' '、'*'、'"' 和 '|' 外的几乎所有 ASCII 字符
'foldmethod' "manual"
'tabstop' 8
'arabic' 关闭
'binary' 关闭
'buflisted' 关闭
'cursorbind' 关闭
'diff' 关闭
'foldenable' 关闭
'list' 关闭
'modifiable' 关闭
'number' 关闭
'relativenumber' 关闭
'rightleft' 关闭
'scrollbind' 关闭
'spell' 关闭
通过标签跳转到指定主题。共有两种方式:
- 在命令或选项名上按 "CTRL-]" 命令。仅对关键字 (见 'iskeyword') 类标签有效。
"<C-Leftmouse>" 和 "g<LeftMouse>" 效果等同于 "CTRL-]"。
- 输入 ":ta {subject}" 命令。可支持非关键字类标签。
可按 CTRL-T 或者 CTRL-O 跳回。
可输入 :q 关闭帮助窗口。
存在多个匹配时,可如此依次跳转每个匹配项:
1. 先打开帮助窗口。
2. 在标签前加上斜杠 ( tag-regexp ) 执行 :tag 命令。例如:
:tag /min
3. 执行 :tnext 跳转到下一个匹配标签。
插件或其他项目可新增帮助文档。无需修改官方发布帮助文档。见 add-local-help 。
如需编写本地帮助文档,见 write-local-help 。
注意: 本地帮助文件的标题行,会自动汇总列在主帮助文档的 "本地附加文档" 一节
local-additions 。仅当 Vim 实际察看帮助文档时生效,不会改动文件本身。具体实现
通过遍历所有帮助文件并提取首行内容完成,跳过 $VIMRUNTINE/doc 目录下的官方文
档。
help-xterm-window
要在其他 xterm 窗口里察看帮助,可用以下命令:
:!xterm -e vim +help &
:helpfind :helpf
:helpf[ind] 同 :help ,但使用对话框输入参数。
仅为向后兼容保留。现在会调用 ToolBar.FindHelp 菜单项,
不再使用内置对话框。
{仅当编译时加入 +GUI_GTK 特性才有效}
:helpt :helptags
E150 E151 E152 E153 E154 E670
:helpt[ags] [++t] {dir}
为目录 {dir} 生成帮助标签文件。{dir} 为 ALL 时,遍历
'runtimepath' 下所有 "doc" 目录。
在指定目录及其子目录中所有 "*.txt" 和 "*.??x" 文件里,
扫描星号之间的帮助标签定义。"*.??x" 是多语言翻译文档,
对应生成 "tags-??" 语言标签文件,见 help-translated 。
生成的标签文件会自动排序。
如果出现重复标签,会报错。
标签文件已存在时,会被直接静默覆盖。
可选参数 "++t" 会强制加入 "help-tags" 标签。{dir} 等于
$VIMRUNTIME/doc 时,也会自动加入此标签。
例如,要重建官方运行时目录帮助标签 (需有相应写权限):
:helptags $VIMRUNTIME/doc
:HelpToc help-TOC help-toc-install package-helptoc
要从文档任意位置随时调出文档交互式目录,可加载 helptoc 插件: >vim
packadd helptoc
<
HelpToc-mappings
然后执行 :HelpToc 命令即可弹出目录菜单。弹窗支持以下普通命令:
键 | 效果
----+---------------------------------------------------------
c | 根据主缓冲区光标位置,选择最近的目录项
g | 选择首项
G | 选择末项
H | 折叠一层目录
j | 选择下一项
J | 同 j,同步在主缓冲区中跳转到对应行
k | 选择上一项
K | 同 k,同步在主缓冲区中跳转到对应行
L | 展开一层目录
p | 在命令行上输出当前目录项
P | 同 p,但改变选择时自动更新输出;再按一次关闭自动更新
q | 关闭菜单
s | 分割窗口并在其中跳转到选中项目
z | 重绘菜单,将当前项目居中显示
+ | 加宽弹出菜单
- | 收窄弹出菜单
? | 显示/隐藏帮助窗口
/ | 搜索匹配模式的目录项
<C-D> | 向下滚动半页
<C-U> | 向上滚动半页
<PageUp> | 向下滚动一页
<PageDown> | 向上滚动一页
<Home> | 选择首项
<End> | 选择末项
该插件还可在以下文件类型的缓冲区里生成目录: asciidoc、html、man、markdown、
tex、vim 和 xhtml。同时支持终端缓冲区的目录提取。其中的项目是最近执行过的外壳
命令。缺省使用以下模式搜索:
^\w\+@\w\+:\f\+\$\s
用于匹配缺省 bash 提示符。如果不匹配,可自定义字典变量 g:helptoc 的
shell_prompt 键指定的正则表达式:
let g:helptoc = {'shell_prompt': '匹配用户外壳提示的正则表达式'}
小技巧: 在 / 命令中输入检索表达式后,如果按下 <Esc> 而非 <CR>,再按 J 或
K 就可查看剩余匹配项的更多上下文。
更多 helptoc 插件用法可见 helptoc.txt ,尤其是关于非帮助文件类型的用法以及配
置选项。注意: 需要先执行 `packadd helptoc`,才能正常跳转到该文档。
除了原版英语帮助文档外,可以添加其他语言的翻译版本。Vim 会遍历 'runtimepath'
下所有 "doc" 子目录加载帮助文件。
{仅当编译时加入 +multi_lang 特性才有效}
目前,有以下的翻译版本可用:
中文 - 多位作者
法语 - David Blanchet 翻译
意大利语 - Antonio Colombo 翻译
日文 - 多位作者
波兰语 - Mikolaj Machowski 翻译
俄罗斯语 - Vassily Ragosin 翻译
瑞典语 - Daniel Nylander 翻译
从 Vim 官网上可找到这些翻译版本: http://www.vim.org/translations.php
翻译文档包含以下文件:
help.abx
howto.abx
...
tags-ab
"ab" 是一个双字母的语言代码。因此中文版本 ("cn") 使用的文件名是:
help.cnx
howto.cnx
...
tags-cn
'helplang' 选项可设置一到多个偏好语言。缺省根据当前系统环境设置。Vim 会任选在
偏好语言中查找标签。如果未找到,使用英语版本作为后备。
要强制指定特定语言,可在标签后加上 "@ab",其中 "ab" 为双字母语言代码。示例:
:he user-manual@cn
:he user-manual@en
前者查找中文版用户手册 (即使 'helplang' 为空)。后者则查找相应的英语版 (即使
'helplang' 设为 "cn")。
:help 命令使用命令行补全时,仅当标签有多语言版本时才显示 "@en" 后缀。仅有英
语版本时,不显示 "@en"。首个匹配项的语言与 'helplang' 的首选语言一致时,也会省
略语言后缀。
在非英语帮助文档里使用 CTRL-] 或 :help! 时,会优先在当前语言内查找标签。如
果查找失败,再根据 'helplang' 匹配其他语言。
帮助文档必须使用 latin1 或 utf-8 编码。当文件首行包含非 ASCII 字符时,Vim 假定
文档使用 utf-8 编码。因此文档头部的 "For Vim version" 必须同步翻译。
同一目录下,同一语言的帮助文档必须统一编码。不同语言或者相同语言但在不同目录下
可使用不同编码。
译者参考建议:
- 不要翻译标签名本身。方便 'helplang' 正确切换语言偏好。但可新增语言专用标签。
- 如果部分内容未翻译,可用 "标签名@en" 格式关联原版英语标签。
- 将所有文档和标签文件打包发布以便下载。用户可解压到任意 "doc" 目录即可直接使
用。请告知开发团队,以便官网 www.vim.org 添加下载链接。
- 要生成标签文件,可用 :helptags 命令。该命令会识别指定目录内所有语言版本。
为便于使用,插件帮助文档应遵循标准 Vim 帮助文档格式,首行除外。编写新帮助文档
时,建议直接复制现有官方文档作为模板。
Vim 帮助文档原文的惯例是在句号之后使用两个空格 (因使用等宽字体,也是七八十年代
的主流排版风格),具体可参考: https://english.stackexchange.com/a/2602
帮助文档首行格式:
plugin_name.txt {插件简短描述}
首个星号包围的字段是帮助标签,`:help plugin_name` 可跳转到此。制表符后的部分为
插件功能的简短描述。该内容会展示在主帮助文件的 "本地附加文档" 一节内。可查看
local-additions 检查显示效果。
如需标注版本号或最后修改日期,放在第二行并右对齐。
帮助文档末尾应添加 Vim 模式行,用于设置 'textwidth'、'tabstop' 等选项,并指定
'filetype' 为 "help"。模式行上请勿设置全局选项,否则后果无法预测。
风 格
启动 'modeline' 后,编辑官方帮助文档时,会自动遵循建议风格。
Vim 帮助文档应将 'textwidth' 设为 78 个字符 (假定 'conceal' 打开 (译者注: 原文
如此,但并无 'conceal' 选项,应理解为 78 列不计入可隐藏文本)),适配标准
80 x 24 终端窗口。,可执行 `:set colorcolumn=+0` 作为排版视觉参考线。
句尾句号和下一句首字母之间保留两个空格 (译者注: 此处指英文原文,为说明之,保留
原文此处下句不翻译)。 ... next sentence. Like this.
内容对齐统一使用制表符,并将 'tabstop' 设为 8。使用制表符有助于缩减文件大小。
帮助文档编辑完成后,执行 :retab 规整制表符。但慎用 :retab! ,执行前务必先检
查变更内容,避免误改。
标 签
要定义帮助标签,将标签名放在星号之间 ("*标签名*")。标签名不能与已有 Vim 帮助标
签重名,建议以插件名作为前缀。标签通常在行内右对齐排版。
要引用已有帮助标签并建立热链,使用竖线 (|) 包围标签名,如 help-writing 。
要引用 Vim 命令并建立热链,使用反引号包围命令,如 :filetype 。使用命令形式高
亮,和下述的代码块高亮一致。
要引用 Vim 选项,使用单引号包围选项名,如 'statusline'。
高 亮
要定义栏标题,在行尾添加波浪符。栏标题会使用特殊颜色高亮。例如
栏标题
要在帮助文件中分隔不同章节,从行首开始放置一整行 '=' 字符。分隔线会使用特殊颜
色高亮。例如
要原样引用 ex 命令块,在代码块前一行末尾放上大于号 (>) 字符,然后在代码块后一
行的首个非空白字符处放上小于号 (<) 字符。第一列为非空白字符的行也会隐含结束 ex
命令块。例如
function Example_Func()
echo "Example"
endfunction
要为代码块启用语法高亮,在大于号 (>) 字符后加上语言名批注 (如 "vim"),
例如 >vim
function Example_Func()
echo "Example"
endfunction
<
g:help_example_languages
帮助文件缺省只支持 Vim 脚本高亮。如需其他语言的语法高亮,在 vimrc 里加入:
:let g:help_example_languages = #{
\ vim: "vim", vim9: "vim", bash: "sh" }
其中,键为批注名,而值为对应的 'syntax' 语法名。
备注: 如果不在 g:help_example_languages 里包含 "vim" 键,Vim 脚本的语法高亮
会失效。如果将 g:help_example_languages 设为空值,所有内嵌语言语法高亮都会关
闭。
补充 备注: 引入的 'syntax' 脚本必须支持嵌入环境,不然,加入帮助文件未必能完美
工作。
help-notation
以下内容在 Vim 帮助文件中会特殊高亮:
- 特殊键名,如采用 <> 记法的 <PageDown>、或 Ctrl 字符如 CTRL-X
- {花括号} 包围的任意内容,如 {lhs} 和 {rhs}
"Note","Notes" 和类似单词会自动获得特殊高亮,还包括以下标记:
*Todo something to do
*Error something wrong
(译者注: 中文版本还支持 注意、备注、警告、译者 等)
详细规则可见 $VIMRUNTIME/syntax/help.vim。
文 件 类 型 补 全 ft-help-omni
编写标签引用时,要想获取帮助标签补全,可用 i_CTRL-X_CTRL-O 命令。
性 别 中 立 用 语 规 范
gender-neutral inclusion
Vim 面向所有用户,不分种族、性别或其他差异。新增或修订文档时,建议使用性别中立
的表述。现有旧版文档存在多年,无需刻意修改。文档行文不预设用户性别,核心目标是
清晰说明 Vim 的使用方式,措词细节是第二位的。
多家线上技术写作规范均包含性别中立用语的相关内容。参考链接如下:
https://developers.google.com/style/pronouns
https://techwhirl.com/gender-neutral-technical-writing/
https://www.skillsyouneed.com/write/gender-neutral-language.html
https://ualr.edu/writingcenter/avoid-sexist-language/
注意: 性别中立用语并非强制概述采用单数形式的 "他们" (译者注: 英语 they 是中性
的,部分规范通过使用其单数形式,代表性别中立的单个人)。
vim:tw=78:ts=8:noet:ft=help:norl: