helphelp

helphelp.txt 适用于 Vim 9.2 版本。 最近更新: 2026年2月 VIM 参考手册 by Bram Moolenaar 译者: Willis 帮助文档的帮助文档 helphelp 1. 帮助命令 online-help 2. 翻译版帮助文档 help-translated 3. 编写帮助文档 help-writing

1. 帮助命令 online-help

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:helptocshell_prompt 键指定的正则表达式: let g:helptoc = {'shell_prompt': '匹配用户外壳提示的正则表达式'} 小技巧: 在 / 命令中输入检索表达式后,如果按下 <Esc> 而非 <CR>,再按 JK 就可查看剩余匹配项的更多上下文。 更多 helptoc 插件用法可见 helptoc.txt ,尤其是关于非帮助文件类型的用法以及配 置选项。注意: 需要先执行 `packadd helptoc`,才能正常跳转到该文档。

2. 翻 译 版 帮 助 文 档 help-translated

除了原版英语帮助文档外,可以添加其他语言的翻译版本。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 命令。该命令会识别指定目录内所有语言版本。

3. 编 写 帮 助 文 档 help-writing

为便于使用,插件帮助文档应遵循标准 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: