runtime(tutor): Add Chinese translation for chapter 1
Commit:
https://github.com/vim/vim/commit/a1895b67b780ca3d92c3d2687d8440569810a153
Author: Mao-Yining <
101858210+...@users.noreply.github.com>
Date: Fri Jan 16 18:20:52 2026 +0000
runtime(tutor): Add Chinese translation for chapter 1
closes:
https://github.com/vim/vim/issues/19189
Signed-off-by: Mao-Yining <
mao.y...@outlook.com>
Signed-off-by: Christian Brabandt <
c...@256bit.org>
diff --git a/Filelist b/Filelist
index 4cfba2323..16adeb554 100644
--- a/Filelist
+++ b/Filelist
@@ -1123,6 +1123,8 @@ LANG_GEN = \
runtime/tutor/sr/vim-01-beginner.tutor.json \
runtime/tutor/sr/vim-02-beginner.tutor \
runtime/tutor/sr/vim-02-beginner.tutor.json \
+ runtime/tutor/zh/vim-01-beginner.tutor \
+ runtime/tutor/zh/vim-01-beginner.tutor.json \
runtime/tutor/tutor1.?? \
runtime/tutor/tutor1.??_?? \
runtime/tutor/tutor1.bar \
diff --git a/runtime/tutor/en/vim-01-beginner.tutor b/runtime/tutor/en/vim-01-beginner.tutor
index 8af5d465c..28d2110cb 100644
--- a/runtime/tutor/en/vim-01-beginner.tutor
+++ b/runtime/tutor/en/vim-01-beginner.tutor
@@ -20,7 +20,7 @@ won't be saved. Don't worry about messing things up; just remember that
pressing [<Esc>](<Esc>) and then [u](u) will undo the latest change.
This tutorial is interactive, and there are a few things you should know.
-- Type [<Enter>](<Enter>) on links [like this](holy-grail ) to open the linked help section.
+- Type [<Enter>](<Enter>) on links [like this](holy-grail) to open the linked help section.
- Or simply type [K](K) on any word to find its documentation!
- Sometimes you will be required to modify text like
this here
diff --git a/runtime/tutor/zh/vim-01-beginner.tutor b/runtime/tutor/zh/vim-01-beginner.tutor
new file mode 100644
index 000000000..c0df23610
--- /dev/null
+++ b/runtime/tutor/zh/vim-01-beginner.tutor
@@ -0,0 +1,907 @@
+# 欢 迎 来 到 VIM 教 程
+
+# 第 一 章
+
+Vim 是一个功能非常强大的编辑器,有很多命令,多得没法在这样的教程里全部讲完。
+本教程旨在介绍足够多的命令,让你能轻松把 Vim 当作通用编辑器使用。
+**重要提示**:请记住,本教程是通过实际操作来教学的。这意味着你需要做练习才能正
+确掌握。如果只是阅读文字,很快你就会忘记最重要的部分!
+
+现在,请确保你的大写锁定键**没有**被按下,然后多次按 j 键,移动光标,直到 “第 0 课”
+完全填满屏幕。
+
+# 第 0 课
+
+注意:课程中的命令会修改文本,但这些改动**不会**被保存。不用担心搞乱内容;只需记住,
+按 [<Esc>](<Esc>) 然后按 [u](u) 可以撤销最新的修改。
+
+本教程是交互式的,有几件事你需要知道:
+- 在[像这样的链接](holy-grail)上按 [<Enter>](<Enter>) 可以打开链接的帮助部分。
+- 或者直接在任何一个单词上按 [K](K) 来查找它的文档!
+- 有时会要求你修改
+这样的文本。
+当你正确完成更改,左侧的 ✗ 标志会变成 ✓。我想你已经能感觉到 Vim 有多棒了。;)
+其他时候,系统会提示你运行一个命令(稍后会解释):
+~~~ cmd
+ :help <Enter>
+~~~
+或者按一系列键
+~~~ normal
+ <Esc>0f<Space>d3wP$P
+~~~
+
+在 < 和 > 之间的文本(比如 `<Enter>`{normal})描述的是需要按下的键,而不是要输入的文本。
+
+现在,移动到下一课(用 `j`{normal} 键向下滚动)。
+
+# 第 1.1 课:移动光标
+
+** 要移动光标,请按照指示按 `h`、`j`、`k`、`l` 键。 **
+
+ ↑
+ k 提示:`h`{normal} 键在左边,向左移动。
+ ← h l → `l`{normal} 键在右边,向右移动。
+ j `j`{normal} 键看起来像一个向下的箭头。
+ ↓
+
+ 1. 在屏幕上随意移动光标,直到你感觉熟练为止。
+
+ 2. 按住向下键(`j`{normal}),直到它开始重复移动。
+ 现在你知道如何进入下一课了。
+
+ 3. 使用向下键,移动到第 1.2 课。
+
+注意:如果你不确定自己输入了什么,按 <Esc> 进入普通模式。然后重新输入你想输入的
+ 命令。
+
+注意:方向键也应该能用。但是一旦你习惯了使用 hjkl,你就能移动得更快。真的!
+
+# 第 1.2 课:退出 Vim
+
+!!注意:在执行下面的任何步骤之前,请先阅读完整课内容!!
+
+ 1. 按 <Esc> 键(以确保你处于普通模式)。
+
+ 2. 输入:
+
+ `:q!`{vim} `<Enter>`{normal}.
+
+ 这会退出编辑器,并**丢弃**你所做的任何更改。
+
+ 3. 打开 vim,并通过执行将你带入此教程的命令回到这里。那可能是:
+
+ :Tutor <Enter>
+
+ 4. 如果你记住了这些步骤并且有信心,请执行步骤 1 到 3 来退出并重新进入编辑器。
+
+注意:[:q!](:q) <Enter> 会丢弃你所做的任何更改。在后面的课程中,你将学习如何将
+ 更改保存到文件。
+
+ 5. 将光标向下移动到第 1.3 课。
+
+# 第 1.3 课:文本编辑 - 删除
+
+** 按 `x`{normal} 删除光标下的字符。 **
+
+ 1. 将光标移动到下面标记为 ✗ 的那一行。
+
+ 2. 要修正错误,移动光标直到它位于要删除的字符上。
+
+ 3. 按 [x 键](x) 删除不需要的字符。
+
+ 4. 重复步骤 2 到 4,直到句子正确为止。
+
+The ccow jumpedd ovverr thhe mooon.
+
+ 5. 现在这一行已经正确,继续第 1.4 课。
+
+注意:在学习本教程时,不要试图死记硬背,要通过使用来学习。
+
+# 第 1.4 课:文本编辑:插入
+
+** 按 `i`{normal} 来插入文本。 **
+
+ 1. 将光标移动到下面标记为 ✗ 的第一行。
+
+ 2. 为了使第一行与第二行相同,将光标移动到要插入文本的位置之后的**第一个字符**上。
+
+ 3. 按 `i`{normal} 并输入必要的添加内容。
+
+ 4. 每修正一个错误后,按 `<Esc>`{normal} 返回普通模式。重复步骤 2 到 4 来纠正句子。
+
+There is text misng this .
+There is some text missing from this line.
+
+ 5. 当你熟悉插入文本后,移动到第 1.5 课。
+
+# 第 1.5 课:文本编辑:追加
+
+** 按 `A`{normal} 来追加文本。 **
+
+ 1. 将光标移动到下面标记为 ✗ 的第一行。光标在该行的哪个字符上并不重要。
+
+ 2. 按 [A](A) 并输入必要的添加内容。
+
+ 3. 文本追加完成后,按 `<Esc>`{normal} 返回普通模式。
+
+ 4. 将光标移动到第二个标记为 ✗ 的行,重复步骤 2 和 3 来纠正这个句子。
+
+There is some text missing from th
+There is some text missing from this line.
+There is also some text miss
+There is also some text missing here.
+
+ 5. 当你熟悉追加文本后,移动到第 1.6 课。
+
+# 第 1.6 课:编辑文件
+
+** 使用 `:wq`{vim} 来保存文件并退出。 **
+
+!!注意:在执行下面的任何步骤之前,请先阅读完整课内容!!
+
+ 1. 像在第 1.2 课中那样退出本教程:`:q!`{vim}
+ 或者,如果你可以访问另一个终端,请在那里进行以下操作。
+
+ 2. 在 shell 提示符下输入以下命令:
+~~~ sh
+ $ vim tutor
+~~~
+ 'vim' 是启动 Vim 编辑器的命令,'tutor' 是你希望编辑的文件名。使用一个可以更
+ 改的文件。
+
+ 3. 按照前面课程所学插入和删除文本。
+
+ 4. 保存更改并退出 Vim:
+~~~ cmd
+ :wq
+~~~
+
+ 注意,你需要按 `<Enter>` 来执行命令。
+
+ 5. 如果你在步骤 1 中退出了 vimtutor,请重新启动 vimtutor 并向下移动到以下总结
+ 部分。
+
+ 6. 阅读并理解上述步骤后:动手做吧。
+
+# 第 1 课总结
+
+ 1. 要移动光标,可以使用方向键或 hjkl 键。
+ h (left) j (down) k (up) l (right)
+
+ 2. 要从 shell 提示符启动 Vim,输入:
+~~~ sh
+ $ vim FILENAME
+~~~
+ 3. 要退出 Vim,输入:`<Esc>`{normal} `:q!`{vim} `<Enter>`{normal} 来丢弃所有更改。
+ 或者输入:`<Esc>`{normal} `:wq`{vim} `<Enter>`{normal} 来保存更改。
+
+ 4. 要删除光标处的字符,输入:`x`{normal}
+
+ 5. 要插入或追加文本,输入:
+ `i`{normal} 插入文本 `<Esc>`{normal} 在光标前插入。
+ `A`{normal} 追加文本 `<Esc>`{normal} 在行尾追加。
+
+注意:按 `<Esc>`{normal} 将使你进入普通模式,或取消一个不需要且未完成的命令。
+
+现在继续第 2 课。
+
+# 第 2.1 课:删除命令
+
+** 输入 `dw`{normal} 来删除一个单词。 **
+
+ 1. 按 `<Esc>`{normal} 以确保你处于普通模式。
+
+ 2. 将光标移动到下面标记为 ✗ 的行。
+
+ 3. 将光标移动到需要删除的单词的开头。
+
+ 4. 输入 [d](d)[w](w) 让该单词消失。
+
+There are a some words fun that don't belong paper in this sentence.
+
+ 5. 重复步骤 3 和 4,直到句子正确,然后前往第 2.2 课。
+
+# 第 2.2 课:更多删除命令
+
+** 输入 `d$`{normal} 来删除到行尾。 **
+
+ 1. 按 `<Esc>`{normal} 以确保你处于普通模式。
+
+ 2. 将光标移动到下面标记为 ✗ 的行。
+
+ 3. 将光标移动到正确行的末尾(在第一个 . 之后)。
+
+ 4. 输入 `d$`{normal} 删除到行尾。
+
+Somebody typed the end of this line twice. end of this line twice.
+
+ 5. 前往第 2.3 课以了解发生了什么。
+
+# 第 2.3 课:关于操作符和动作
+
+许多更改文本的命令由一个[操作符](operator)和一个[动作](navigation)组成。
+使用 [d](d) 删除操作符的删除命令格式如下:
+
+ d 动作
+
+ 其中:
+ d - 是删除操作符。
+ 动作 - 是操作符将要操作的对象(见下文)。
+
+ 动作的简短列表:
+ [w](w) - 直到下一个单词的开头,**不包括**其第一个字符。
+ [e](e) - 到当前单词的结尾,**包括**最后一个字符。
+ [$]($) - 到行尾,**包括**最后一个字符。
+
+ 因此,输入 `de`{normal} 将从光标删除到单词末尾。
+
+注意:在普通模式下,只按动作键(不带操作符)将按指定方式移动光标。
+
+# 第 2.4 课:对动作使用计数
+
+** 在动作前输入数字可以使其重复多次。 **
+
+ 1. 将光标移动到下面标记为 ✓ 的行的开头。
+
+ 2. 输入 `2w`{normal} 将光标向前移动两个单词。
+
+ 3. 输入 `3e`{normal} 将光标移动到向前第三个单词的末尾。
+
+ 4. 输入 `0`{normal} ([0](0)) 移动到行首。
+
+ 5. 用不同的数字重复步骤 2 和 3。
+
+This is just a line with words you can move around in.
+
+ 6. 前往第 2.5 课。
+
+# 第 2.5 课:使用计数来删除更多
+
+** 在操作符前输入数字可以使其重复多次。 **
+
+在上面提到的删除操作符和动作的组合中,你可以在动作前插入一个计数来删除更多:
+ d 数字 动作
+
+ 1. 将光标移动到标记为 ✗ 的行中的第一个大写单词上。
+
+ 2. 输入 `d2w`{normal} 删除两个大写单词。
+
+ 3. 使用不同的计数重复步骤 1 和 2,用一个命令删除连续的大写单词。
+
+This ABC DE line FGHI JK LMN OP of words is Q RS TUV cleaned up.
+
+# 第 2.6 课:对整行进行操作
+
+** 输入 `dd`{normal} 删除整行。 **
+
+由于删除整行的频率很高,Vi 的设计者认为简单地输入两个 d 来删除一行会更方便。
+
+ 1. 将光标移动到下面短语的第二行。
+ 2. 输入 [dd](dd) 删除该行。
+ 3. 现在移动到第四行。
+ 4. 输入 `2dd`{normal} 删除两行。
+
+1) Roses are red,
+2) Mud is fun,
+3) Violets are blue,
+4) I have a car,
+5) Clocks tell time,
+6) Sugar is sweet
+7) And so are you.
+
+# 第 2.7 课:撤销命令
+
+** 按 `u`{normal} 撤销上一个命令,按 `U`{normal} 修复整行。 **
+
+ 1. 将光标移动到下面标记为 ✗ 的行,并将其放在第一个错误上。
+ 2. 输入 `x`{normal} 删除第一个不需要的字符。
+ 3. 现在输入 `u`{normal} 撤销最后执行的命令。
+ 4. 这次使用 `x`{normal} 命令修复该行上的所有错误。
+ 5. 现在输入大写的 `U`{normal} 将该行恢复到原始状态。
+ 6. 现在多次输入 `u`{normal} 来撤销 `U`{normal} 及之前的命令。
+ 7. 现在多次输入 `<C-r>`{normal} (Control + R) 来重做命令(撤销撤销操作)。
+
+Fiix the errors oon thhis line and reeplace them witth undo.
+
+ 8. 这些是非常有用的命令。现在前往第 2 课总结。
+
+# 第 2 课总结
+
+ 1. 要从光标删除到下一个单词,输入: `dw`{normal}
+ 2. 要从光标删除到行尾,输入: `d$`{normal}
+ 3. 要删除整行,输入: `dd`{normal}
+ 4. 要重复一个动作,在其前面加上数字: `2w`{normal}
+
+ 5. 更改命令的格式是:
+ 操作符 [数字] 动作
+ where:
+ 操作符 - 是要做什么,例如 [d](d) 表示删除
+ [数字] - 是可选的计数,用于重复动作
+ 动作 - 指定操作要覆盖的文本范围,例如:
+ [w](w) (单词),
+ [$]($) (到行尾), 等等。
+
+ 6. 要移动到行首,使用零:[0](0)
+
+ 7. 要撤销之前的操作,输入: `u`{normal} (小写 u)
+ 要撤销一行上的所有更改,输入: `U`{normal} (大写 U)
+ 要重做(撤销撤销操作),输入: `<C-r>`{normal}
+
+# 第 3.1 课:放置命令
+
+** 输入 `p`{normal} 将先前删除的文本放到光标之后。 **
+
+ 1. 将光标移动到下面第一个标记为 ✓ 的行。
+
+ 2. 输入 `dd`{normal} 删除该行并将其存储在 Vim 寄存器中。
+
+ 3. 将光标移动到 c) 行,放在被删除行应该放置的位置**之上**。
+
+ 4. 输入 `p`{normal} 将行放在光标下方。
+
+ 5. 重复步骤 2 到 4,将所有行按正确顺序放置。
+
+d) Can you learn too?
+b) Violets are blue,
+c) Intelligence is learned,
+a) Roses are red,
+
+# 第 3.2 课:替换命令
+
+** 输入 `rx`{normal} 用 x 替换光标处的字符。 **
+
+ 1. 将光标移动到下面标记为 ✗ 的第一行。
+
+ 2. 移动光标,使其位于第一个错误上。
+
+ 3. 输入 `r`{normal},然后输入应该在那里的字符。
+
+ 4. 重复步骤 2 和 3,直到第一行与第二行相同。
+
+Whan this lime was tuoed in, someone presswd some wrojg keys!
+When this line was typed in, someone pressed some wrong keys!
+
+ 5. 现在前往第 3.3 课。
+
+注意:记住你应该通过动手做来学习,而不是死记硬背。
+
+# 第 3.3 课:更改操作符
+
+** 要更改到单词末尾,输入 `ce`{normal}。 **
+
+ 1. 将光标移动到下面标记为 ✗ 的第一行。
+
+ 2. 将光标放在 "lubw" 的 "u" 上。
+
+ 3. 输入 `ce`{normal} 和正确的单词(在这里,输入 "ine")。
+
+ 4. 按 `<Esc>`{normal} 并移动到下一个需要更改的字符。
+
+ 5. 重复步骤 3 和 4,直到第一个句子与第二个相同。
+
+This lubw has a few wptfd that mrrf changing usf the change operator.
+This line has a few words that need changing using the change operator.
+
+注意:[c](c)e 会删除单词并使你进入插入模式。
+
+# 第 3.4 课:使用 `c`{normal} 进行更多更改
+
+** 更改操作符与删除使用相同的动作。 **
+
+ 1. 更改操作符的工作方式与删除相同。格式是:
+
+ c [数字] 动作
+
+ 2. 动作是相同的,例如 `w`{normal} (单词) 和 `$`{normal} (行尾)。
+
+ 3. 移动到下面标记为 ✗ 的第一行。
+
+ 4. 将光标移动到第一个错误。
+
+ 5. 输入 `c$`{normal} 并像第二行那样输入该行的其余部分,然后按 `<Esc>`{normal}。
+
+The end of this line needs some help to make it like the second.
+The end of this line needs to be corrected using the c$ command.
+
+注意:你可以在输入时使用退格键来纠正错误。
+
+# 第 3 课总结
+
+ 1. 要放回刚刚删除的文本,输入 [p](p)。这会将删除的文本放在光标**之后**(如果删除了一行,
+ 它将放在光标下方的那一行)。
+
+ 2. 要替换光标下的字符,输入 [r](r),然后输入你想要的字符。
+
+ 3. [更改操作符](c) 允许你从光标处更改到动作指定的位置。输入 `ce`{normal} 从光标更改到单词末尾,
+ `c$`{normal} 更改到行尾。
+
+ 4. 更改的格式是:
+
+ c [数字] 动作
+
+现在前往下一课。
+
+# 第 4.1 课:光标位置和文件状态
+
+** 输入 `<C-g>`{normal} 以显示你在文件中的位置和文件状态。
+ 输入 `{行号}G`{normal} 以移动到文件中的第 {行号} 行。 **
+
+注意:在执行任何步骤之前,请阅读完整课内容!!
+
+ 1. 按住 `<Ctrl>`{normal} 键并按下 `g`{normal}。我们称之为 `<C-g>`{normal}。页面底部会出现一条消息,显示文件
+ 名和文件中的位置。记住步骤 3 所需的行号。
+
+注意:你可能会在屏幕右下角看到光标位置。当 ['ruler']('ruler') 选项被设置
+时,就会发生这种情况。
+ 2. 按 [G](G) 移动到文件底部。
+ 输入 [gg](gg) 移动到文件开头。
+
+ 3. 输入你所在的行号,然后输入 `G`{normal}。这将使你返回到第一次按 `<C-g>`{normal} 时所在的行。
+
+ 4. 如果你有信心,请执行步骤 1 到 3。
+
+# 第 4.2 课:搜索命令
+
+** 输入 `/`{normal} 后跟短语以搜索该短语。 **
+
+ 1. 在普通模式下输入 `/`{normal} 字符。注意它和光标会像 `:`{normal} 命令一样出现在屏幕底部。
+
+ 2. 现在输入 'errroor' `<Enter>`{normal}。这是你要搜索的单词。
+
+ 3. 要再次搜索相同的短语,只需输入 [n](n)。
+ 要朝相反方向搜索相同的短语,输入 [N](N)。
+
+ 4. 要向后搜索短语,使用 [?](?) 代替 `/`{normal}。
+
+ 5. 要返回到你来的地方,按 `<C-o>`{normal}(按住 `<Ctrl>`{normal} 同时按下字母 `o`{normal})。重复按可以返回
+ 更早的位置。`<C-i>`{normal} 向前移动。
+
+"errroor" is not the way to spell error; errroor is an error.
+
+注意:当搜索到达文件末尾时,除非 ['wrapscan']('wrapscan') 选项被重置,否则它会从文件开头继续。
+
+
+# 第 4.3 课:匹配括号搜索
+
+** 输入 `%`{normal} 以找到匹配的 )、] 或 }。 **
+
+ 1. 将光标放在下面标记为 ✓ 的行中的任意 (、[ 或 { 上。
+
+ 2. 现在输入 [%](%) 字符。
+
+ 3. 光标将移动到匹配的括号或方括号。
+
+ 4. 输入 `%`{normal} 将光标移动到另一个匹配的括号。
+
+ 5. 将光标移动到另一个 (, ), [, ], { 或 } 上,看看 `%`{normal} 会做什么。
+
+This ( is a test line with ('s, ['s ] and {'s } in it. ))
+
+注意:这对于调试括号不匹配的程序非常有用!
+
+# 第 4.4 课:替换命令
+
+** 输入 `:s/旧文本/新文本/g` 以用“新文本”替换“旧文本”。 **
+
+ 1. 将光标移动到下面标记为 ✗ 的行。
+
+ 2. 输入
+~~~ cmd
+ :s/thee/the/
+~~~
+ 注意 [:s](:s) 命令只更改了行中第一个 "thee" 的出现。
+
+ 3. 现在输入
+~~~ cmd
+ :s/thee/the/g
+~~~
+ 添加 g [标志](:s_flags) 意味着在行中全局替换,更改行中所有 "thee" 的出现。
+
+Usually thee best time to see thee flowers is in thee spring.
+
+ 4. 要更改两行之间的每个字符串出现,输入
+~~~ cmd
+ :#,#s/旧文本/新文本/g
+~~~
+ 其中 #,# 是要进行替换的行范围的行号。
+
+ 输入
+~~~ cmd
+ :%s/旧文本/新文本/g
+~~~
+ 以更改整个文件中的每个出现。
+
+ 输入
+~~~ cmd
+ :%s/旧文本/新文本/gc
+~~~
+ 以查找整个文件中的每个匹配,并提示是否替换。
+
+# 第 4 课总结
+
+ 1. `<C-g>`{normal} 显示你的位置和文件状态。
+ `G`{normal} 移动到文件末尾。
+ 行号 `G`{normal} 移动到该行号。
+ `gg`{normal} 移动到第一行。
+
+ 2. 输入 `/`{normal} 后跟短语向前搜索该短语。
+ 输入 `?`{normal} 后跟短语向后搜索该短语。
+ 搜索后输入 `n`{normal} 以在同一方向查找下一个出现,或输入 `N`{normal} 以朝相反方向搜索。
+ `<C-o>`{normal} 带你回到较早的位置,`<C-i>`{normal} 到较新的位置。
+
+ 3. 当光标在 (, ), [, ], {, 或 } 上时,输入 `%`{normal} 会跳转到其匹配项。
+
+ 4. 要用新文本替换行中的第一个旧文本,输入
+~~~ cmd
+ :s/旧文本/新文本
+~~~
+ 要用新文本替换行中的所有旧文本,输入
+~~~ cmd
+ :s/旧文本/新文本/g
+~~~
+ 要替换两个行号之间的短语,输入
+~~~ cmd
+ :#,#s/旧文本/新文本/g
+~~~
+ 要替换文件中的所有出现,输入
+~~~ cmd
+ :%s/旧文本/新文本/g
+~~~
+ 要每次询问确认,添加 'c'
+~~~ cmd
+ :%s/旧文本/新文本/gc
+~~~
+
+# 第 5.1 课:如何执行外部命令
+
+** 输入 `:!`{vim} 后跟外部命令以执行该命令。 **
+
+ 1. 输入熟悉的命令 `:`{normal} 将光标设置在屏幕底部。这允许你输入命令行命令。
+
+ 2. 现在输入 [!](!cmd)(感叹号)字符。这允许你执行任何外部 shell 命令。
+
+ 3. 例如,在 "!" 后面输入 "ls",然后按 `<Enter>`{normal}。这将显示你目录的列表,
+ 就像你在 shell 提示符下一样。
+
+注意:可以通过这种方式执行任何外部命令,也可以带参数。
+
+注意:所有 `:`{vim} 命令必须通过按 `<Enter>`{normal} 来完成。从现在起,我们不会总是提到这一点。
+
+# 第 5.2 课:关于写入文件的更多内容
+
+** 要保存对文本所做的更改,输入 `:w`{vim} 文件名。 **
+
+ 1. 输入 `:!ls`{vim} 获取你目录的列表。你已经知道之后必须按 `<Enter>`{normal}。
+
+ 2. 选择一个尚不存在的文件名,例如 TEST。
+
+ 3. 现在输入:
+~~~ cmd
+ :w TEST
+~~~
+ (其中 TEST 是你选择的文件名。)
+
+ 4. 这将整个文件(Vim 教程)以 TEST 为名保存。要验证这一点,再次输入 `:!ls`{vim} 查看
+ 你的目录。
+
+注意:如果你退出 Vim 并用 `vim TEST` 重新启动,该文件将是你保存时教程的精确副本。
+
+ 5. 现在通过输入以下命令删除该文件:
+~~~ cmd
+ :!rm TEST
+~~~
+
+# 第 5.3 课:选择要写入的文本
+
+** 要保存文件的一部分,输入 `v`{normal} 动作 `:w 文件名`{vim}。 **
+
+ 1. 将光标移动到本行。
+
+ 2. 按 [v](v) 并将光标移动到下面第五个项目。注意文本被高亮显示。
+
+ 3. 按 `:`{normal} 字符。屏幕底部会出现
+
+ :'<,'>
+
+ 4. 输入
+
+ `:w TEST`{vim}
+
+ 其中 TEST 是一个尚不存在的文件名。验证在按 `<Enter>`{normal} 之前你看到的是
+
+ `:'<,'>w TEST`{vim}
+
+ 5. Vim 会将选定的行写入文件 TEST。使用 `:!ls`{vim} 查看它。先不要删除它!我们
+ 将在下一课中使用它。
+
+注意:按 [v](v) 启动[可视选择](visual-mode)。你可以移动光标来扩大或缩小选择范围。
+然后你可以使用操作符对文本执行操作。例如,`d`{normal} 删除文本。
+
+# 第 5.4 课:检索和合并文件
+
+** 要插入文件的内容,输入 `:r 文件名`{vim}。 **
+
+ 1. 将光标放在本行上方。
+
+注意:执行步骤 2 后,你将看到第 5.3 课的文本。然后向下移动以再次看到本课。
+
+ 2. 现在使用以下命令检索你的 TEST 文件
+
+ `:r TEST`{vim}
+
+ 其中 TEST 是你使用的文件名。检索到的文件放在光标行的下方。
+
+ 3. 要验证文件已被检索,将光标移回并注意现在有两个第 5.3 课的副本,原始版本和文
+ 件版本。
+
+注意:你也可以读取外部命令的输出。例如,
+
+ `:r !ls`{vim}
+
+ 读取 `ls` 命令的输出并将其放在光标下方。
+
+# 第 5 课总结
+
+ 1. [:!命令](:!cmd) 执行外部命令。
+
+ 一些有用的例子是:
+ `:!ls`{vim} - 显示目录列表
+ `:!rm 文件名`{vim} - 删除文件 FILENAME
+
+ 2. [:w](:w) 文件名 将当前 Vim 文件以文件名保存到磁盘。
+
+ 3. [v](v) 动作 :w 文件名 将可视选择的行保存到文件 FILENAME。
+
+ 4. [:r](:r) 文件名 从磁盘检索文件 FILENAME 并将其放在光标位置下方。
+
+ 5. [:r !dir](:r!) 读取 dir 命令的输出并将其放在光标位置下方。
+
+# 第 6.1 课:打开命令
+
+** 输入 `o`{normal} 以在光标下方打开一行并使你进入插入模式。 **
+
+ 1. 将光标移动到下面标记为 ✓ 的行。
+
+ 2. 输入小写字母 `o`{normal} 以在光标**下方**[打开](o)一行并使你进入插入模式。
+
+ 3. 现在输入一些文本并按 `<Esc>`{normal} 退出插入模式。
+
+输入 `o`{normal} 后,光标被置于打开的行上,处于插入模式。
+
+ 4. 要在光标**上方**打开一行,只需输入[大写 O](O),而不是小写 `o`{normal}。在下面一行试试。
+
+在此行上方打开一行,在光标位于此行时输入 O。
+
+# 第 6.2 课:追加命令
+
+** 输入 `a`{normal} 以在光标**之后**插入文本。 **
+
+ 1. 将光标移动到下面标记为 ✗ 的行的开头。
+
+ 2. 按 `e`{normal} 直到光标位于 "li" 的末尾。
+
+ 3. 输入小写字母 `a`{normal} 以在光标**之后**[追加](a)文本。
+
+ 4. 像下面那行一样完成单词。按 `<Esc>`{normal} 退出插入模式。
+
+ 5. 使用 `e`{normal} 移动到下一个不完整的单词,重复步骤 3 和 4。
+
+This li will allow you to pract appendi text to a line.
+This line will allow you to practice appending text to a line.
+
+注意:[a](a)、[i](i) 和 [A](A) 都进入相同的插入模式,唯一的区别是字符插入的位置。
+
+# 第 6.3 课:另一种替换方式
+
+** 输入大写 `R`{normal} 以替换多个字符。 **
+
+ 1. 将光标移动到下面标记为 ✗ 的第一行。将光标移动到第一个 "xxx" 的开头。
+
+ 2. 现在按 `R`{normal} ([大写 R](R)) 并输入第二行中它下面的数字,以替换 "xxx"。
+
+ 3. 按 `<Esc>`{normal} 离开[替换模式](mode-replace)。注意该行的其余部分保持不变。
+
+ 4. 重复步骤以替换剩余的 "xxx"。
+
+Adding 123 to xxx gives you xxx.
+Adding 123 to 456 gives you 579.
+
+注意:替换模式类似于插入模式,但每个键入的字符都会删除一个现有字符。
+
+# 第 6.4 课:复制和粘贴文本
+
+** 使用 `y`{normal} 操作符复制文本,使用 `p`{normal} 粘贴它。 **
+
+ 1. 转到下面标记为 ✓ 的行,将光标放在 "a)" 之后。
+
+ 2. 用 `v`{normal} 启动可视模式,并将光标移动到 "first" 之前。
+
+ 3. 输入 `y`{normal} 以[复制](yank)(复制)高亮的文本。
+
+ 4. 将光标移动到下一行的末尾:`j$`{normal}
+
+ 5. 输入 `p`{normal} 以[放置](put)(粘贴)文本。
+
+ 6. 按 `a`{normal},然后输入 "second"。按 `<Esc>`{normal} 离开插入模式。
+
+ 7. 使用可视模式选择 "item.",用 `y`{normal} 复制它,用 `j$`{normal} 移动到下一
+ 行的末尾,并用 `p`{normal} 将文本放在那里。
+
+a) This is the first item.
+b)
+
+注意:你可以将 `y`{normal} 用作操作符:`yw`{normal} 复制一个单词。
+
+# 第 6.5 课:设置选项
+
+** 设置选项以使搜索或替换忽略大小写。 **
+
+ 1. 通过输入搜索 'ignore':`/ignore`
+ 通过按 `n`{normal} 重复几次。
+
+ 2. 通过输入设置 'ic'(忽略大小写)选项:
+~~~ cmd
+ :set ic
+~~~
+ 3. 现在再次通过按 `n`{normal} 搜索 'ignore'。
+ 注意现在 Ignore 和 IGNORE 也被找到了。
+
+ 4. 设置 'hlsearch' 和 'incsearch' 选项:
+~~~ cmd
+ :set hls is
+~~~
+ 5. 现在再次输入搜索命令,看看会发生什么:/ignore <Enter>
+
+ 6. 要禁用忽略大小写,输入:
+~~~ cmd
+ :set noic
+~~~
+ 7. 要切换设置的开关,在前面加上 "inv":
+~~~ cmd
+ :set invic
+~~~
+注意:要移除匹配项的高亮显示,输入:
+~~~ cmd
+ :nohlsearch
+~~~
+注意:如果你只想对一次搜索命令忽略大小写,在短语中使用 [