translation(zh_CN): Add Chinese man pages
Commit:
https://github.com/vim/vim/commit/7f6fd6be897485130a595536f095370e48e4c6f2
Author: Mao-Yining <
mao.y...@outlook.com>
Date: Thu Jul 2 19:24:19 2026 +0000
translation(zh_CN): Add Chinese man pages
Problem: No Simplified Chinese man pages.
Solution: Add Simplified Chinese translations of man pages.
closes: #19464
Co-Authored-By: yianwillis <
yianw...@gmail.com>
Signed-off-by: Mao-Yining <
mao.y...@outlook.com>
Signed-off-by: Christian Brabandt <
c...@256bit.org>
diff --git a/.github/MAINTAINERS b/.github/MAINTAINERS
index 072f69aeb..6fdafa094 100644
--- a/.github/MAINTAINERS
+++ b/.github/MAINTAINERS
@@ -134,6 +134,11 @@ runtime/doc/vimtutor-ru.1 @RestorerZ
runtime/doc/vimtutor-ru.UTF-8.1 @RestorerZ
runtime/doc/xxd-ru.1 @RestorerZ
runtime/doc/xxd-ru.UTF-8.1 @RestorerZ
+runtime/doc/evim-zh_CN.UTF-8.1 @mao-yining
+runtime/doc/vim-zh_CN.UTF-8.1 @mao-yining
+runtime/doc/vimdiff-zh_CN.UTF-8.1 @mao-yining
+runtime/doc/vimtutor-zh_CN.UTF-8.1 @mao-yining
+runtime/doc/xxd-zh_CN.UTF-8.1 @mao-yining
runtime/ftplugin/abaqus.vim @costerwi
runtime/ftplugin/abnf.vim @A4-Tacks
runtime/ftplugin/algol68.vim @dkearns
diff --git a/Filelist b/Filelist
index c073e1ad6..aedb16a7f 100644
--- a/Filelist
+++ b/Filelist
@@ -1133,6 +1133,7 @@ LANG_GEN = \
runtime/doc/*-sv.UTF-8.1 \
runtime/doc/*-tr.1 \
runtime/doc/*-tr.UTF-8.1 \
+ runtime/doc/*-zh_CN.UTF-8.1 \
runtime/lang/README.txt \
runtime/lang/Makefile \
runtime/lang/Make_all.mak \
diff --git a/runtime/doc/evim-zh_CN.UTF-8.1 b/runtime/doc/evim-zh_CN.UTF-8.1
new file mode 100644
index 000000000..d91c337b1
--- /dev/null
+++ b/runtime/doc/evim-zh_CN.UTF-8.1
@@ -0,0 +1,53 @@
+.TH EVIM 1 "2024 August 12"
+.SH 名称
+evim \- 简易 Vim ,使用 Vim 编辑文件并设置为无模式编辑
+.SH 概述
+.br
+.B evim
+[选项] [文件 ..]
+.br
+.B eview
+.SH 描述
+.B eVim
+启动
+.B Vim
+并设置选项,使其行为类似于无模式编辑器。
+这仍然是 Vim ,但作为点击式编辑器使用。
+体验很像在 MS-Windows 上使用记事本。
+.B eVim
+将始终在 GUI 中运行,以启用菜单和工具栏。
+.PP
+仅适用于那些确实无法以正常方式使用 Vim 的人。
+编辑效率会低得多。
+.PP
+.B eview
+功能相同,但以只读模式启动。其工作方式与 evim \-R 相同。
+.PP
+有关 Vim 、选项等的详细信息,请参见 vim(1)。
+.PP
+选项 'insertmode' 被开启,以便能够直接输入文本。
+.br
+设置相应映射,使复制和粘贴使用类似 MS-Windows 的快捷键。
+CTRL-X 剪切文本,CTRL-C 复制文本,CTRL-V 粘贴文本。
+使用 CTRL-Q 可用于执行 CTRL-V 的原生功能。
+.SH 选项
+参见 vim(1)。
+.SH 文件
+.TP 15
+/usr/local/share/vim/vim??/evim.vim
+用于初始化 eVim 的脚本。
+.br
+.I vim??
+是短版本号,如 vim91 代表
+.B Vim 9.1
+.SH 别名
+也被称为 “傻瓜版Vim”。
+使用 evim 时,你应该拿一块手帕,
+在每个角上打一个结,然后戴在头上。
+.SH 另见
+vim(1)
+.SH 作者
+绝大多数
+.B Vim
+代码由 Bram Moolenaar 完成,并得到了众多人士的大力协助。
+参见 “帮助” 菜单中的 “致谢”。
diff --git a/runtime/doc/vim-zh_CN.UTF-8.1 b/runtime/doc/vim-zh_CN.UTF-8.1
new file mode 100644
index 000000000..86514eec2
--- /dev/null
+++ b/runtime/doc/vim-zh_CN.UTF-8.1
@@ -0,0 +1,570 @@
+.TH VIM 1 "2025 Jun 27"
+.SH 名称
+vim \- Vi 改进版 (Vi IMproved),一个面向程序员的文本编辑器
+.SH 概述
+.br
+.B vim
+[options] [file ..]
+.br
+.B vim
+[options] \-
+.br
+.B vim
+[options] \-t tag
+.br
+.B vim
+[options] \-q [errorfile]
+.PP
+.br
+.B ex
+.br
+.B view
+.br
+.B gvim
+.B gview
+.B evim
+.B eview
+.br
+.B rvim
+.B rview
+.B rgvim
+.B rgview
+.SH 描述
+.B Vim
+是一个向上兼容 Vi 的文本编辑器。
+它可用于编辑各种纯文本文件。
+它在编辑程序方面尤为有用。
+.PP
+相较于 Vi,它有许多增强功能: 多级撤销、多窗口与多缓冲区、语法高亮、命令行编辑、文件名补全、在线帮助、可视化选择等。
+关于
+.B Vim
+与 Vi 之间差异的概要,请参见 ":help vi_diff.txt"。
+.PP
+在运行
+.B Vim
+时,可以通过 ":help" 命令从在线帮助系统中获取大量帮助信息。
+请参见下文的 "在线帮助" 章节。
+.PP
+通常,
+.B Vim
+用于编辑单个文件,可通过以下命令启动:
+.PP
+ vim file
+.PP
+更一般地,
+.B Vim
+可通过以下方式启动:
+.PP
+ vim [options] [filelist]
+.PP
+如果未提供 filelist,编辑器将以一个空缓冲区启动。
+否则,可使用下列四种方式之一来选择一个或多个要编辑的文件。
+.TP 12
+file ..
+文件名列表。
+第一个文件将作为当前文件,并被读入缓冲区。
+光标将定位在缓冲区的第一行。
+可使用 ":next" 命令切换到其他文件。
+如果要编辑以连字符开头的文件,请在文件列表前加 "\-\-"。
+.TP
+\-
+要编辑的文件从标准输入 (stdin) 读取。命令从标准错误 (stderr) 读取,该设备应为终端 (tty)。
+.TP
+\-t {tag}
+根据指定 "tag" 来选择要编辑的文件以及初始光标位置,相当于标签跳转。
+会在 tags 文件中查找 {tag},关联的文件会成为当前文件,并执行关联的命令。
+这通常用于 C 程序,此时 {tag} 可以是函数名。
+效果是包含该函数的文件成为当前文件,光标会定位到该函数的起始处。
+参见 ":help tag\-commands"。
+.TP
+\-q [errorfile]
+以快速修复模式启动。
+读取 [errorfile] 文件并显示第一个错误。
+省略 [errorfile] 时,从 "errorfile" 选项获取文件名 (在 Amiga 上缺省为"AztecC.Err",在其他系统上默认为 "errors.err")。
+可使用 ":cn" 命令跳转到后续错误。
+参见 "help quickfix"。
+.PP
+.B Vim
+的行为会因命令名称而异 (实际可执行文件可能仍是同一个)。
+.TP 10
+vim
+"正常" 方式,全部使用缺省设置。
+.TP
+ex
+以 Ex 模式启动。
+使用 ":vi" 命令进入普通模式。
+也可使用 "\-e" 参数实现。
+.TP
+view
+以只读模式启动,防止对文件进行写入。
+也可使用 "\-R" 参数实现。
+.TP
+gvim gview
+图形界面版本。
+启动一个新窗口。
+也可使用 "\-g" 参数实现。
+.TP
+evim eview
+图形界面版本的简易模式。
+启动一个新窗口。
+也可使用 "\-y" 参数实现。
+.TP
+rvim rview rgvim rgview
+与以上类似,但带有限制。不能启动外壳命令,也不能挂起
+.B Vim
+。也可使用 "\-Z" 参数实现。
+.SH 选项
+选项可以以任意顺序给出,位于文件名之前或之后。
+无参数的选项可在一个短横后合并 (例如 "\-abc")。
+.TP 12
++[num]
+对于第一个文件,光标将定位到第 "num" 行。
+"num" 省略时,光标将定位到最后一行。
+.TP
++/{pat}
+对于第一个文件,光标将定位到首次出现 {pat} 的那一行。
+可用的搜索模式参见 ":help search\-pattern"。
+.TP
++{command}
+.TP
+\-c {command}
+在读取第一个文件后执行 {command}。
+{command} 被解释为 Ex 命令。
+{command} 含有空格时,必须用双引号括起来 (具体取决于所用的外壳)。
+示例: vim "+set si" main.c
+.br
+注意: 最多可使用 10 个 "+" 或 "\-c" 命令。
+.TP
+\-A
+如果
+.B Vim
+编译时加入 ARABIC 支持 (用于编辑从右到左的文件并提供阿拉伯键盘映射),
+此选项将以阿拉伯模式启动
+.B
+Vim
+,即置位 'arabic'。否则会给出错误信息并且
+.B Vim
+退出。
+.TP
+\-b
+二进制模式。
+将设置一些选项,以便编辑二进制或可执行文件。
+.TP
+\-C
+兼容模式。置位 'compatible' 选项。
+这将使
+.B Vim
+大体表现得像 Vi,即使存在 .vimrc 文件也是如此。
+.TP
+\-d
+以比较模式启动。
+应提供两到八个文件名参数。
+.B Vim
+会打开所有文件并显示它们之间的差异。
+作用与 vimdiff(1) 类似。
+.TP
+\-d {device}, \-dev {device}
+打开 {device} 作为终端使用。
+仅在 Amiga 上可用。
+示例:
+"\-d con:20/30/600/150"。
+.TP
+\-D
+调试。在执行脚本的第一条命令时进入调试模式。
+.TP
+\-e
+以
+.B Vim
+的 Ex 模式启动,就像可执行文件名为 "ex" 一样。
+.TP
+\-E
+以
+.B Vim
+的增强 Ex 模式启动,就像可执行文件名为 "exim" 一样。
+.TP
+\-f
+前台。对于 GUI 版本,
+.B Vim
+不会分叉 (fork) 并从启动时的外壳分离。
+在 Amiga 上,
+.B Vim
+不会重启以打开新窗口。
+当
+.B Vim
+由会等待编辑会话结束的程序 (例如邮件程序) 执行时,应使用此选项。
+在 Amiga 上,无法使用 ":sh" 和 ":!" 命令。
+.TP
+\-F
+如果
+.B Vim
+编译时加入 FKMAP 支持 (用于编辑从右到左的文件并提供波斯语键盘映射),
+此选项将以波斯语模式启动
+.B Vim
+,即置位 'fkmap' 和 'rightleft'。
+否则会给出错误信息并且
+.B Vim
+退出。
+.br
+注意: 波斯语支持已在补丁 8.1.0932 中移除。
+.TP
+\-g
+如果
+.B Vim
+编译时加入 GUI 支持,此选项会启用 GUI。
+如果未编译 GUI 支持,会给出错误信息并且
+.B Vim
+退出。
+.TP
+\-H
+如果
+.B Vim
+编译时加入 RIGHTLEFT 支持 (用于编辑从右到左的文件并提供希伯来语键盘映射),
+此选项将以希伯来模式启动
+.B Vim
+,即置位 'hkmap' 和 'rightleft'。
+否则会给出错误信息并且
+.B Vim
+退出。
+.TP
+\-i {viminfo}
+指定读取或写入 viminfo 文件时使用的文件名,替代默认的 "~/.viminfo"。
+也可通过指定名称 "NONE" 来跳过使用 .viminfo 文件。
+.TP
+\-l
+Lisp 模式。
+开启 'lisp' 和 'showmatch' 选项。
+.TP
+\-L
+等同于 \-r。
+.TP
+\-m
+禁用文件修改。
+复位 'write' 选项。
+仍可修改缓冲区,但无法写入文件。
+.TP
+\-M
+不允许修改。将复位 'modifiable' 和 'write' 选项,以禁止更改并防止写入文件。
+注意这些选项之后可以被重新置位,以再次允许进行修改。
+.TP
+\-n
+不使用交换文件。
+发生崩溃后无法恢复。
+适用于在非常慢的介质 (例如软盘) 上编辑文件。
+也可通过 ":set uc=0" 实现。
+可通过 ":set uc=200" 撤销。
+.TP
+\-N
+非兼容模式。复位 'compatible' 选项。
+这会使
+.B Vim
+表现得更好,但与 Vi 的兼容性稍差,即使不存在 .vimrc 文件也会如此。
+.TP
+\-nb
+成为 NetBeans 的编辑器服务器。详见文档。
+.TP
+\-o[N]
+打开 N 个垂直堆叠的窗口。
+N 省略时,为每个文件打开一个窗口。
+.TP
+\-O[N]
+打开 N 个并排窗口。
+N 省略时,为每个文件打开一个窗口。
+.TP
+\-p[N]
+] 打开 N 个标签页。
+N 省略时,为每个文件打开一个标签页。
+.TP
+\-P {parent-title}
+仅限 Win32 GUI: 指定父应用程序的标题。若可能,Vim 将在该应用程序内的 MDI 窗口
+中运行。{parent-title} 必须出现在父应用窗口标题中,且需足够具体。
+注意实现仍较为原始;并非所有应用都可用,菜单也不可用。
+.TP
+\-r
+列出交换文件,并提供关于恢复时使用它们的信息。
+.TP
+\-r {file}
+恢复模式。
+使用交换文件恢复崩溃的编辑会话。
+交换文件与文本文件同名,但附加后缀为 ".swp"。
+参见 ":help recovery"。
+.TP
+\-R
+只读模式。
+将置位 'readonly' 选项。
+仍可编辑缓冲区,但会防止意外覆盖文件。
+如果确需覆盖文件,请在 Ex 命令后添加感叹号,例如 ":w!"。
+\-R 选项也隐含 \-n 选项 (见上文)。
+可用 ":set noro" 来复位 'readonly' 选项。
+参见 ":help 'readonly'"。
+.TP
+\-s
+静默模式。仅当以 "Ex" 启动或在 "\-e" 选项之后给出 "\-s" 选项时有效。
+.TP
+\-s {scriptin}
+读取脚本文件 {scriptin}。
+文件中的字符将会以键盘输入的方式进行解释。
+同样效果也可通过命令 ":source! {scriptin}" 实现。
+如果在编辑器退出前到达文件末尾,将继续从键盘读取字符。
+.TP
+\-S {file}
+在读取第一个文件后执行 {file}。
+等同于 \-c "source {file}"。
+{file} 不能以 '\-' 开头。
+{file} 省略时,将使用 "Session.vim" (仅当 \-S 为最后一个参数时生效)。
+.TP
+\-T {terminal}
+告知
+.B Vim
+正在使用的终端名称。
+仅当自动检测失败时需要。
+应为
+.B Vim
+已知 (内置) 或在 termcap/terminfo 文件中定义的终端。
+.TP
+\-u {vimrc}
+使用 {vimrc} 文件中的命令进行初始化。
+其他所有初始化将被跳过。
+用于编辑特定类型的文件。
+也可通过指定名称 "NONE" 跳过所有初始化。
+详见 Vim 内的 ":help initialization"。
+.TP
+\-U {gvimrc}
+使用 {gvimrc} 文件中的命令进行 GUI 初始化。
+其他所有 GUI 初始化将被跳过。
+也可通过指定名称 "NONE" 跳过所有 GUI 初始化。
+详见 Vim 内的 ":help gui\-init"。
+.TP
+\-v
+以
+.B Vim
+的 Vi 模式启动,就像可执行文件名为 "vi" 一样。仅当可执行文件名为 "ex" 时有效。
+.TP
+\-V[N]
+详细模式。输出关于哪些文件被执行以及读取/写入 viminfo 文件的消息。可选数值 N
+为 'verbose' 的值,缺省值为 10。
+.TP
+\-V[N]{filename}
+和 \-V 类似,但同时设置 'verbosefile' 为 {filename}。此时消息不显示,而写入
+{filename} 文件。{filename} 不能以数位开头。
+.TP
+\-w{number}
+将 'window' 选项设置为 {number}。
+.TP
+\-w {scriptout}
+用户输入的所有字符将被记录到文件 {scriptout},直到退出
+.B Vim
+为止。如果要创建用于 "vim \-s" 或 ":source!" 的脚本文件,这很有用。
+如果 {scriptout} 文件已存在,新内容将追加到该文件末尾。
+.TP
+\-W {scriptout}
+和 \-w 类似,但会覆盖已存在的文件。
+.TP
+\-x
+如果
+.B Vim
+编译时加入加密支持,写入文件时使用加密。
+会提示输入加密密钥。
+.TP
+\-X
+不连接到 X 服务器。在终端中可缩短启动时间,但无法使用窗口标题和剪贴板。
+.TP
+\-Y
+不连接到 wayland 合成器。
+.TP
+\-y
+以
+.B Vim
+的简易模式启动,就像可执行文件名为 "evim" 或 "eview" 一样。
+使
+.B Vim
+表现为点击输入式的编辑器。
+.TP
+\-Z
+受限模式。就像可执行文件以 "r" 开头一样。
+.TP
+\-\-
+标记选项结束。
+其后的参数将作为文件名处理。
+这可用于编辑以 '\-' 开头的文件名。
+.TP
+\-\-clean
+不使用任何个人配置 (vimrc、插件等)。用于在干净 Vim 环境下检查问题是否可复现。
+.TP
+\-\-cmd {command}
+和 "\-c" 类似,但在处理任何 vimrc 文件之前先执行命令。
+最多可使用 10 个此类命令,与 "\-c" 命令互不影响。
+.TP
+\-\-echo\-wid
+仅限 GTK GUI: 在标准输出上回显窗口 ID。
+.TP
+\-\-gui\-dialog\-file {name}
+使用 GUI 时,不显示对话框,而是将对话框的标题和消息写入文件 {name}。
+该文件会被创建或追加写入。仅用于测试,以避免测试卡在不可见的对话框上。
+未使用 GUI 时忽略此参数。
+.TP
+\-\-help, \-h, \-?
+提供关于命令行参数和选项的简要帮助。
+之后
+.B Vim
+退出。
+.TP
+\-\-literal
+按本义处理文件名参数,不展开通配符。在 Unix 上无效,因为外壳总会展开通配符。
+.TP
+\-\-log {filename}
+如果
+.B Vim
+编译时加入 eval 和 channel 特性,启动日志记录并将条目写入 {filename}。
+其效果类似在启动早期调用
+.I ch_logfile({filename}, 'ao')。
+.TP
+\-\-nofork
+前台。对于 GUI 版本,
+.B Vim
+不会分叉 (fork) 并从启动时的外壳分离。
+.TP
+\-\-noplugin
+跳过插件的加载。\-u NONE 会隐含本选项。
+.TP
+\-\-not\-a\-term
+告知
+.B Vim
+用户知道输入和/或输出未连接到终端。这将避免出现警告及随后的两秒延迟。
+.TP
+\-\-remote
+连接到一个 Vim 服务器,并让其编辑后续参数中给出的文件。若未找到服务器,将给出警告并在当前 Vim 中编辑这些文件。
+.TP
+\-\-remote\-expr {expr}
+连接到 Vim 服务器,在其中计算 {expr} 并将结果打印到标准输出。
+.TP
+\-\-remote\-send {keys}
+连接到 Vim 服务器并发送 {keys}。
+.TP
+\-\-remote\-silent
+同 \-\-remote,但在未找到服务器时不显示警告。
+.TP
+\-\-remote\-wait
+同 \-\-remote,但 Vim 在文件编辑完成之前不会退出。
+.TP
+\-\-remote\-wait\-silent
+同 \-\-remote\-wait,但在未找到服务器时不显示警告。
+.TP
+\-\-serverlist
+列出可发现的所有 Vim 服务器的名称。
+.TP
+\-\-servername {name}
+将 {name} 用作服务器名称。用于当前 Vim,除非与
+\-\-remote 参数一起使用,此时它是要连接的服务器名称。
+若使用 socketserver 后端,且名称以 "/"、"./" 或 "../"开头,则视为指向该套接字的绝对、相对或相对路径。
+.TP
+\-\-clientserver {backend}
+将 {backend} 用作 clientserver 功能的后端,分别为 "socket" 或 "x11"。
+仅在编译时同时加入 socketserver 和 X11 特性时可用。
+.TP
+\-\-socketid {id}
+仅限 GTK GUI: 使用 GtkPlug 机制在另一个窗口中运行 gVim。
+.TP
+\-\-startuptime {file}
+在启动期间将计时消息写入文件 {fname}。
+.TP
+\-\-ttyfail
+当 stdin 或 stdout 不是终端 (tty)时,立即退出。
+.TP
+\-\-version
+打印版本信息并退出。
+.TP
+\-\-windowid {id}
+仅限 Win32 GUI: 使 gVim 尝试使用窗口 {id} 作为父窗口,从而在该窗口内运行。
+.SH 在线帮助
+在
+.B Vim
+中输入 ":help" 即可开始使用帮助系统。
+输入 ":help 主题" 可以查看某个特定主题的帮助。
+例如: 输入 ":help ZZ" 可查看 "ZZ" 命令的帮助。
+使用 <Tab> 和 CTRL-D 可以补全主题名称 (参见 ":help cmdline-completion")。
+文档中包含标签,可在不同位置之间跳转 (类似于超文本链接,参见 ":help")。
+所有文档文件都可以通过这种方式查看,例如:
+":help syntax.txt"。
+.SH 文件
+.TP 15
+/usr/local/share/vim/vim??/doc/*.txt
+.B Vim
+文档文件。
+可用 ":help doc\-file\-list" 获取完整文档列表。
+.br
+其中,
+.I vim??
+为短版本名,例如 vim91 代表
+.B Vim 9.1
+。
+.TP
+/usr/local/share/vim/vim??/doc/tags
+用于在文档文件中查找信息的标签文件。
+.TP
+/usr/local/share/vim/vim??/syntax/syntax.vim
+系统范围的语法初始化代码。
+.TP
+/usr/local/share/vim/vim??/syntax/*.vim
+不同语言的语法文件。
+.TP
+/usr/local/share/vim/vimrc
+系统范围的
+.B Vim
+初始化代码。
+.TP
+~/.vimrc, ~/.vim/vimrc, $XDG_CONFIG_HOME/vim/vimrc
+用户个人的
+.B Vim
+初始化代码 (使用首个找到的文件)。
+.TP
+/usr/local/share/vim/gvimrc
+系统范围的 gvim 初始化代码。
+.TP
+~/.gvimrc, ~/.vim/gvimrc, $XDG_CONFIG_HOME/vim/gvimrc
+用户个人的
+.B gVim
+初始化代码 (使用首个找到的文件)。
+.TP
+/usr/local/share/vim/vim??/optwin.vim
+用于 ":options" 命令的脚本,这是一个用于查看和设置选项的便捷方式。
+.TP
+/usr/local/share/vim/vim??/menu.vim
+系统范围用于
+.B gVim
+的菜单初始化代码。
+.TP
+/usr/local/share/vim/vim??/bugreport.vim
+用于生成漏洞报告的脚本。参见 ":help bugs"。
+.TP
+/usr/local/share/vim/vim??/filetype.vim
+用于根据文件名检测文件类型的脚本。参见 ":help 'filetype'"。
+.TP
+/usr/local/share/vim/vim??/scripts.vim
+用于根据文件内容检测文件类型的脚本。参见 ":help 'filetype'"。
+.TP
+/usr/local/share/vim/vim??/print/*.ps
+用于 PostScript 打印的文件。
+.PP
+如需获取最新信息,请阅读 VIM 官方主页:
+.br
+<URL:
http://www.vim.org/>
+.SH 另见
+vimtutor(1)
+.SH 作者
+绝大多数
+.B Vim
+代码由 Bram Moolenaar 完成,同时得到许多其他人士的帮助。
+参见
+.B Vim
+中的 ":help credits"。
+.br
+.B Vim
+基于由 Tim Thompson、Tony Andrews 和 G.R. (Fred) Walter 编写的 Stevie。
+不过,绝大多数原始代码已被重写。
+.SH 漏洞
+有可能。
+已知问题的列表可参见 ":help todo"。
+.PP
+请注意,某些被认为是漏洞的现象,实际上源于对 Vi 行为的高度忠实复制。
+如果仅因为 Vi 的表现不同而认为某些行为是漏洞,请参阅 vi_diff.txt 文件 (或在Vim 中执行 :help vi_diff.txt)。
+同时请查阅 'compatible' 与 'cpoptions' 选项。
diff --git a/runtime/doc/vimdiff-zh_CN.UTF-8.1 b/runtime/doc/vimdiff-zh_CN.UTF-8.1
new file mode 100644
index 000000000..1adf197ac
--- /dev/null
+++ b/runtime/doc/vimdiff-zh_CN.UTF-8.1
@@ -0,0 +1,44 @@
+.TH VIMDIFF 1 "2021 June 13"
+.SH 名称
+vimdiff \- 使用 Vim 同时编辑二至八个版本的文件并显示差异
+.SH 概述
+.br
+.B vimdiff
+[选项] 文件1 文件2 [文件3 [文件4 [文件5 [文件6 [文件7 [文件8]]]]]]
+.PP
+.B gvimdiff
+.SH 描述
+.B Vimdiff
+会启动
+.B Vim
+并同时打开二到八个文件。
+每个文件各占一个窗口。
+文件之间的差异会被高亮显示。
+这可以很方便的检查变更以及在不同版本间同步修改。
+.PP
+关于 Vim 本身的详细信息,请参见 vim(1)。
+.PP
+若以
+.B gvimdiff
+方式启动,则会启用图形界面(如果可用)。
+.PP
+每个窗口都会开启 'diff' 选项,用以高亮显示差异。
+.br
+选项 'wrap' 和 'scrollbind' 也会被开启,确保文本显示效果良好。
+.br
+选项 'foldmethod' 被设为 "diff",这样未发生变更的行段会被自动折叠起来。
+同时 'foldcolumn' 设为 2,方便用户发现、展开和关闭折叠。
+.SH 选项
+默认使用纵向分割窗口来对齐行,效果等同于指定了 "\-O" 参数。
+若要改为横向分割,可使用 "\-o" 参数。
+.PP
+其他选项请参见 vim(1)。
+.SH 另见
+vim(1)
+.SH 作者
+绝大多数
+.B Vim
+代码由 Bram Moolenaar 完成,并得到了众多人士的大力协助。
+参见
+.B Vim
+中的 ":help credits"。
diff --git a/runtime/doc/vimtutor-zh_CN.UTF-8.1 b/runtime/doc/vimtutor-zh_CN.UTF-8.1
new file mode 100644
index 000000000..5b7f9729a
--- /dev/null
+++ b/runtime/doc/vimtutor-zh_CN.UTF-8.1
@@ -0,0 +1,104 @@
+.TH VIMTUTOR 1 "2024 December 03"
+.SH 名称
+vimtutor \- Vim 教程
+.SH 概述
+.br
+.B vimtutor [\-l | \-\-language ISO639] [\-c | \-\-chapter 数字] [\-g | \-\-gui] [ISO639]
+.br
+.B vimtutor [\-h | \-\-help]
+.br
+.B vimtutor [\-\-list]
+.SH 描述
+.B Vimtutor
+会启动
+.B Vim
+教程。
+.PP
+.B Vimtutor
+适合想要学习
+.B Vim
+基本命令的初学者。
+可选的 [ISO639] 参数是语言的两个或三个字母代码,
+例如 "it"(意大利语)或 "es"(西班牙语)。
+.PP
+.B Vimtutor
+仅打开原始教程文件的临时副本,不会覆盖课程内容。
+.PP
+.B Vim
+始终以
+.B Vi
+不兼容模式启动。
+.SH 选项
+.TP
+.BR \-l ", " \-\-language\ IISO639R
+设置两个或三个字母的语言代码,例如 'it'、'es'、'bar'。
+默认使用当前区域设置对应的语言(若可用),否则使用英语。
+.TP
+.BR \-c ", " \-\-chapter\ I数字R
+设置章节编号,默认为第一章。
+.TP
+.BR \-g ", " \-\-gui
+以图形界面版本的 Vim 启动
+.B vimtutor
+(若可用),否则回退到控制台版本的 Vim。
+.TP
+.BR \-h ", " \-\-help
+显示用法信息。
+.TP
+.BR \-\-list
+显示所有可用的章节和语言列表。
+.SH 示例
+以德语启动
+.B vimtutor
+并进入第一章:
+.PP
+.nf
+.RS
+vimtutor de
+.RE
+.fi
+.PP
+以英语启动并进入第二章:
+.PP
+.nf
+.RS
+vimtutor -c2
+.RE
+.fi
+.PP
+以巴伐利亚语在图形界面下启动并进入第一章(长选项格式):
+.PP
+.nf
+.RS
+vimtutor --language bar --chapter 1 --gui
+.RE
+.fi
+.SH 文件
+.TP 15
+/usr/local/share/vim/vim??/tutor/tutor1[.language]
+.B Vimtutor
+第一章的文本文件。
+.TP 15
+/usr/local/share/vim/vim??/tutor/tutor2[.language]
+.B Vimtutor
+第二章的文本文件。
+.TP 15
+/usr/local/share/vim/vim??/tutor/tutor.vim
+用于复制
+.B Vimtutor
+文本文件的
+.B Vim
+脚本。
+.SH 作者
+.B 《Vi 教程》
+最初由科罗拉多矿业学院的 Michael C. Pierce 和 Robert K. Ware 为 Vi 编写,
+并采用了科罗拉多州立大学 Charles Smith 提供的构思。
+.B 电子邮件:
bw...@mines.colorado.edu(现已失效)。
+.PP
+后由 Bram Moolenaar 修改为适用于
+.B Vim
+的版本。
+.PP
+各翻译版本的贡献者列于教程文件中。
+.SH 参见
+vim(1)
diff --git a/runtime/doc/xxd-zh_CN.UTF-8.1 b/runtime/doc/xxd-zh_CN.UTF-8.1
new file mode 100644
index 000000000..2ce594982
--- /dev/null
+++ b/runtime/doc/xxd-zh_CN.UTF-8.1
@@ -0,0 +1,417 @@
+.TH XXD 1 "Mar 2026" "Manual page for xxd"
+.\"
+.\" 21st May 1996
+.\" 手册页作者:
+.\" Tony Nugent <
to...@sctnugen.ppp.gu.edu.au> <
T.Nu...@sct.gu.edu.au>
+.\" 由 Bram Moolenaar <
Br...@vim.org> 修改
+.SH 名称
+.I xxd
+\- 生成十六进制转储或执行反向操作
+.SH 概述
+.B xxd
+\-h[elp]
+.br
+.B xxd
+[options] [infile [outfile]]
+.br
+.B xxd
+\-r[evert] [options] [infile [outfile]]
+.SH 描述
+.I xxd
+可以生成给定文件或标准输入的十六进制转储。
+它也可以将十六进制转储还原回原始的二进制形式。
+与
+.BR uuencode (1)
+和
+.BR uudecode (1)
+类似,它允许以"邮件安全"的 ASCII 表示形式传输二进制数据,
+但其优点是可以解码到标准输出。
+此外,它还可用于执行二进制文件修补。
+.SH 选项
+如果未指定
+.I infile
+,则读取标准输入。
+如果
+.I infile
+指定为
+.RB \` \- '
+字符,则从标准输入读取输入。
+如果未指定
+.I outfile
+(或其位置是
+.RB \` \- '
+字符),则结果发送到标准输出。
+.PP
+注意:程序使用"懒惰"解析器,除非选项后跟有参数,否则不会检查超过第一个选项字母。
+单个选项字母与其参数之间的空格是可选的。
+选项参数可以用十进制、十六进制或八进制表示法指定。
+因此
+.BR \-c8 、
+.BR "\-c 8" 、
+.B \-c 010
+和
+.B \-cols 8
+都是等效的。
+.PP
+.TP
+.IR \-a " | " \-autoskip
+切换自动跳过:单个 '*' 替换全零行。默认关闭。
+.TP
+.IR \-b " | " \-bits
+切换到比特(二进制数字)转储,而非十六进制转储。
+此选项将每个字节写为八个"1"和"0"数字,而不是普通的十六进制转储。
+每行前面有十六进制的行号,后面跟着 ASCII(或 EBCDIC)表示形式。
+命令行开关 \-p 在此模式下无效。可与 \-i 结合使用。
+.TP
+.IR "\-c cols " | " \-cols cols"
+每行格式化
+.RI < cols >
+个字节。默认 16(\-i 模式: 12,\-ps 模式: 30,\-b 模式: 6)。最大 256。
+\-ps 模式无最大值。在 \-ps 模式下,值为 0 时输出为单行。
+.TP
+.IR \-C " | " \-capitalize
+使用 \-i 选项时,按 C 语言头文件(include file)的风格将变量名大写。
+.TP
+.I \-d
+以十进制而非十六进制显示偏移量。
+.TP
+.IR \-E " | " \-EBCDIC
+将右侧列的字符编码从 ASCII 更改为 EBCDIC。
+这不会改变十六进制表示。此选项与 \-r、\-p 或 \-i 组合使用时无效。
+.TP
+.IR \-e
+切换到小端序十六进制转储。
+此选项将字节组视为小端字节序的字。
+默认的 4 字节分组可通过
+.RI "" \-g
+更改。
+此选项仅适用于十六进制转储,保持 ASCII(或 EBCDIC)表示不变。
+命令行开关 \-r、\-p、\-i 在此模式下无效。
+.TP
+.IR "\-g bytes " | " \-groupsize bytes"
+每隔
+.RI < bytes >
+个字节(每个字节对应两位十六进制字符或八位比特数字)用空格分隔输出。
+指定
+.I \-g 0
+可取消分组。
+.RI < Bytes >
+在普通模式下默认为 I2P,在小端模式下为 I4P,在比特模式下为 I1P。
+分组不适用于 PostScript 或 C 语言头文件(include)样式。
+.TP
+.IR \-h " | " \-help
+打印可用命令摘要并退出。不执行十六进制转储。
+.TP
+.IR \-i " | " \-include
+按 C 语言头文件(include file)的风格输出。
+通常写入完整的静态数组定义(以输入文件命名),从 stdin 读取时除外。
+可与 -b 共用。
+.TP
+.IR "\-l len " | " \-len len"
+写入
+.RI < len >
+个字节后停止。
+.TP
+.I "\-n name " | " \-name name"
+当使用 \-i 时覆盖输出的变量名。数组命名为
+InameP,长度命名为 InameP_len。
+.TP
+.I \-o offset
+将
+.RI < offset >
+添加到显示的文件位置。
+.TP
+.IR \-p " | " \-ps " | " \-postscript " | " \-plain
+以 PostScript 连续十六进制转储样式输出。也称为纯十六进制转储样式。
+.TP
+.IR \-r " | " \-revert
+反向操作:将十六进制转储转换(或修补)为二进制。
+如果不写入标准输出,xxd 写入输出文件时不截断文件。
+使用
+.I \-r \-p
+组合可以读取没有行号信息且无特定列布局的纯十六进制转储。
+允许任意位置的额外空格和换行符。
+使用
+.I \-r \-b
+组合可以读取比特转储而非十六进制转储。
+.TP
+.IR \-R " " when
+在输出中,十六进制值和 ASCII 值根据十六进制值使用相同颜色着色。
+主要用于帮助区分可打印字符和不可打印字符。
+.I IwhenP
+可以是
+.BR never 、 always 或 auto (默认: auto)。
+当设置了
+.BR $NO_COLOR
+环境变量时,将禁用着色。
+.TP
+.I \-seek offset
+当在
+.IR \-r
+之后使用时:还原时在十六进制转储中找到的文件位置上添加
+.RI < offset >。
+.TP
+.I \-s [+][\-]seek
+从
+.RI < seek >
+字节的绝对(或相对)输入文件偏移量处开始。
+I+ R 表示偏移量相对于当前标准输入文件位置(不从标准输入读取时无效)。
+I\- R 表示偏移量应从输入末尾向前计数多少字符(或与 I+R 组合时:在当前标准输入文件位置之前)。
+如果不带 \-s 选项,xxd 从当前文件位置开始。
+.TP
+.I \-t
+当使用 \-i 以 C 语言头文件(include file)的风格输出时,包含结尾的零字节。
+.TP
+.I \-u
+使用大写十六进制字母。默认为小写。
+.TP
+.IR \-v " | " \-version
+显示版本字符串。
+.SH 注意事项
+.PP
+.I xxd \-r
+在解析行号信息时具有一些内置的智能处理。
+如果输出文件可寻址,则每个十六进制转储行开头的行号可能乱序、行可能缺失或重叠。
+在这些情况下,xxd 会使用 lseek(2) 跳转到下一个位置。如果输出文件不可寻址,则只允许间隙,这些间隙将由空字节填充。
+.PP
+.I xxd \-r
+从不生成解析错误。垃圾数据会被静默跳过。
+.PP
+编辑十六进制转储时,请注意
+.I xxd \-r
+在读取足够列数的十六进制数据后(参见 \-c 选项),会跳过输入行上的所有其他内容。
+这也意味着对可打印 ASCII(或 EBCDIC)列的更改总是被忽略。
+使用 xxd \-r \-p 还原纯十六进制转储(或 PostScript)样式时,不依赖于正确的列数。
+在这种情况下,任何看起来像一对十六进制数字的内容都会被解释。
+.PP
+注意以下两者的区别:
+.br
+I% xxd \-i fileR
+.br
+和
+.br
+I% xxd \-i < fileR
+.PP
+.I xxd \-s +seek
+可能与
+.IR "xxd \-s seek"
+不同,因为 lseek(2) 用于"回退"输入。
+如果输入源是标准输入,并且在 xxd 启动并接收输入时标准输入的文件位置不在文件开头,那么 '+' 就会产生影响。
+以下示例可能有助于澄清(或进一步混淆!):
+.PP
+在读取前回退标准输入;因为 `cat` 已经读到了标准输入的末尾。
+.br
+I% sh \-c "cat > plain_copy; xxd \-s 0 > hex_copy" < fileR
+.PP
+从文件位置 0x480(=1024+128)开始生成十六进制转储。
+`+` 号表示"相对于当前位置",因此 `128` 加到了 dd 停止的 1k 位置之后。
+.br
+I% sh \-c "dd of=plain_snippet bs=1k count=1; xxd \-s +128 > hex_snippet" < fileR
+.PP
+从文件位置 0x100(=1024\-768)开始生成十六进制转储。
+.br
+I% sh \-c "dd of=plain_snippet bs=1k count=1; xxd \-s +\-768 > hex_snippet" < fileR
+.PP
+然而,这种情况很少见,`+` 的使用通常并不需要。
+作者建议在使用 \-s 时,用 strace(1) 或 truss(1) 监控 xxd 的效果。
+.SH 示例
+.PP
+.br
+打印
+.BR file
+除前三行(十六进制 0x30 字节)之外的所有内容。
+.br
+I% xxd \-s 0x30 fileR
+.PP
+.br
+从
+.BR file
+末尾开始打印 3 行(十六进制 0x30 字节)。
+.br
+I% xxd \-s \-0x30 fileR
+.PP
+注意:以下示例的结果基于 2026 年 3 月的 xxd.1 手册页。
+.PP
+.br
+打印 120 字节,以连续十六进制转储格式,每行 20 个字节。
+.br
+I% xxd \-l 120 \-ps \-c 20 xxd.1R
+.br
+2e544820585844203120224d6172203230323622
+.br
+20224d616e75616c207061676520666f72207878
+.br
+64220a2e5c220a2e5c222032317374204d617920
+.br
+313939360a2e5c22204d616e2070616765206175
+.br
+74686f723a0a2e5c2220202020546f6e79204e75
+.br
+67656e74203c746f6e79407363746e7567656e2e
+.br
+
+.br
+将此手册页的前 120 字节以每行 12 个字节进行十六进制转储。
+.br
+I% xxd \-l 120 \-c 12 xxd.1R
+.br
+00000000: 2e54 4820 5858 4420 3120 224d .TH XXD 1 "M
+.br
+0000000c: 6172 2032 3032 3622 2022 4d61 ar 2026" "Ma
+.br
+00000018: 6e75 616c 2070 6167 6520 666f nual page fo
+.br
+00000024: 7220 7878 6422 0a2e 5c22 0a2e r xxd"..\"..
+.br
+00000030: 5c22 2032 3173 7420 4d61 7920 \" 21st May
+.br
+0000003c: 3139 3936 0a2e 5c22 204d 616e 1996..\" Man
+.br
+00000048: 2070 6167 6520 6175 7468 6f72 page author
+.br
+00000054: 3a0a 2e5c 2220 2020 2054 6f6e :..\" Ton
+.br
+00000060: 7920 4e75 6765 6e74 203c 746f y Nugent <to
+.br
+0000006c: 6e79 4073 6374 6e75 6765 6e2e ny@sctnugen.
+.PP
+.br
+仅显示文件 xxd.1 中的日期。
+.br
+I% xxd \-s 0x33 \-l 13 \-c 13 xxd.1R
+.br
+00000033: 3231 7374 204d 6179 2031 3939 36 21st May 1996
+.PP
+.br
+将
+.B input_file
+复制到
+.B output_file
+并在开头添加 100 个值为 0x00 的字节。
+.br
+I% xxd input_file | xxd \-r \-s 100 > output_fileR
+.br
+
+.br
+修补文件 xxd.1 中的日期。
+.br
+I% echo "0000034: 3574 68" | xxd \-r \- xxd.1R
+.br
+I% xxd \-s 0x33 \-l 13 \-c 13 xxd.1R
+.br
+00000033: 3235 7468 204d 6179 2031 3939 36 25th May 1996
+.PP
+.br
+创建一个 65537 字节的文件,所有字节均为 0x00,
+除了最后一个字节是 'A'(十六进制 0x41)。
+.br
+I% echo "010000: 41" | xxd \-r > fileR
+.PP
+.br
+使用自动跳过模式对此文件进行十六进制转储。
+.br
+I% xxd \-a \-c 12 fileR
+.br
+00000000: 0000 0000 0000 0000 0000 0000 ............
+.br
+*
+.br
+0000fffc: 0000 0000 41 ....A
+.PP
+创建一个 1 字节的文件,包含单个字符 'A'。
+在 '\-r \-s' 后面的数字会加到文件中找到的行号上;
+实际效果是抵制了开头的字节。
+.br
+I% echo "010000: 41" | xxd \-r \-s \-0x10000 > fileR
+.PP
+在编辑器(如
+.B vim(1)
+)中将 xxd 用作过滤器,对 `a` 和 `z` 之间的标记区域进行十六进制转储。
+.br
+I:'a,'z!xxdR
+.PP
+在编辑器(如
+.B vim(1)
+)中将 xxd 用作过滤器,恢复标记在 `a` 和 `z` 之间的二进制十六进制转储。
+.br
+I:'a,'z!xxd \-rR
+.PP
+在编辑器(如
+.B vim(1)
+)中将 xxd 用作过滤器,恢复一行十六进制转储。将光标移动到该行并键入:
+.br
+I!!xxd \-rR
+.PP
+从串行线读取单个字符。
+.br
+I% xxd \-c1 < /dev/term/b &R
+.br
+I% stty < /dev/term/b \-echo \-opost \-isig \-icanon min 1R
+.br
+I% echo \-n foo > /dev/term/bR
+.PP
+以 C 语言头文件(include)的风格输出,并包含结尾的零字节。
+.br
+I% echo -n \&"0123456789\&" > digitsR
+.br
+I% xxd -i -t digitsR
+.br
+unsigned char digits[] = {
+.br
+ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x00
+.br
+};
+.br
+unsigned int digits_len = 10;
+.PP
+.SH "返回值"
+返回以下错误值:
+.TP
+0
+未遇到错误。
+.TP
+\-1
+不支持的操作
+\%(