_   _                 __    __
    | | | |         _      \ \  / /
    | |_| |  ____  | | (_)  \ \/ /
    |  _  | /  _ \ | |  _    )  (
    | | | | |  __/ | | | |  / /\ \
    |_| |_|  \___| |_| |_| /_/  \_\

        一个后现代模态文本编辑器
            version 22.12 

本文已经提交 PR#5199 建议本地合并PR,编译后使用 :tutor zh_cn 使用本教程。

欢迎使用 Helix 编辑器!Helix 不同于其他的编辑器,它是有模态的, 也就是它在编辑文本的时候有不同的模式,最常用的模式有普通模式Normal mode)和插入模式(Insert mode)。普通模式下您输入的按键 实际上不会输入任何文本,而会对文本进行各种操作。这样可让您进行 更加高效率的操作。本教程将教您如何使用 Helix 的模态编辑功能。

现在,现在请确保您的 CapsLock (大小写锁定键) 没有被按下,然后 按下 j 键,直到第一节课的内容完全显示。

1.1 基础的光标移动

      k       * h 向左移动
  ← h   l →   * l 向右移动
      j       * j 向下移动
      ↓       * k 向上移动

在helix中使用 h,j,k,l 移动光标,如上图所示,也可以使用上下左右键 来移动光标。但是使用 hjkl 更加的便捷,试着使用 hjkl 来移动光标, 之后按 j 键移动下一节课程。

1.2 退出 HELIX

  1. 输入 : (冒号,hx 使用的是英文半角符号) 进入命令模式,可以发现 光标进入了窗口的底部。
  2. 输入 q 或者 quit,然后回车就可以退出 Helix 了。

提示:如果有存在未保存的文件的时候,退出命令将失效。如果想要放弃 文件的更改,可以使用 q! 或者 quit! 进行强制退出。稍后您将 学习到如何保存文件。

可以通过输入 Esc 键退出命令模式。

现在,可以进入下一课了。

1.3 删除操作

键入 d 键可以删除光标下的字符。

  1. 移动光标到下面标记 '-->' 位置。
  2. 对照下方的一行,移动光标找到额外的字符,并使用 d 删除。
 --> Thhiss senttencee haass exxtra charracterss.
     This sentence has extra characters.

如果两行句子对照后一致的话,我们就可以进入下一节课了。

1.4 插入模式

键入 i 键可以进入插入模式(Insert Mode)。

  1. 移动光标到下面标记 '-->' 位置。
  2. 对照下一行的文本,移动光标到文本缺少的位置,然后键入 i 进入 插入模式,就可以开始输入字符了。
  3. 输入缺少的文本内容。
  4. 使用 Esc 键退出插入模式,会自动切换为普通模式。
  5. 重复练习,直到与下一行的内容对照一致。
 --> Th stce misg so.
     This sentence is missing some text.

提示:在编辑器底部的状态栏会显示当前的状态模式。 当键入 i 的时候,可以看到 NOR 变为了 INS。

1.5 保存文件

键入 :w / :write 可以保存当前的文件。

  1. 现在可以使用 :q! 强制离开,或者新开一个终端窗口。
  2. 使用 Helix 打开已个文件,在终端中输入 hx 文件名称。
  3. 打开后文件后,现在在编辑器中输入一些内容。
  4. 键入 : 进入 命令模式
  5. 继续键入 w 或者 write ,然后回车就可以将内容保存到文件了。

您也可以使用 wq 或者 write-quit 命令来保存后退出。

提示:您可以在 w / write 命令后跟随输入任意文件地址进行另存为 自定义的路径。

提示:如果当前文件包含没有保存的内容,在状态栏显示文件名称的位置 会追加 [+] 的字符来提示文件未保存。

章节 1 概要

  • 使用 h,j,k,l 键移动光标。

  • 键入 : 进入命令模式

    • 使用 q / quitq! / quit! 命令退出 Helix。前者会在文件未保 存的时候失败,而后者会直接忽略未保存的文件。
    • 使用 w / write 命令来保存文件。
    • 使用 wq / write-quit 命令保存并退出。
  • 键入 d 可以删除光标下的字符。

  • 键入 i 可以进入插入模式后输入文本,使用 Esc 返回到普通模式。

2.1 插入命令

如上所述,您可以在光标所在的位置键入 i 进入插入模式。下面介绍几 种在不同位置进入插入模式的方式。

常用的插入命令有:

  • i - 在选区的前面进入插入模式。
  • a - 在选区的后面进入插入模式(这里是扩展选区的意思)。
  • I - 在行的最前方进入插入模式。
  • A - 在行的最后方进入插入模式。
  1. 移动光标到下面标记 '-->' 位置。
  2. 键入 A (Shift + a),你的光标会移动到行尾进入插入模式。
  3. 输入内容直到和对照内容一致。
 --> This sentence is miss
     This sentence is missing some text.

2.2 新建行

键入 o 会在光标所在位置的下方新建一行,并进入插入模式。
键入 O 会在光标所在位置的上方新建一行,并进入插入模式。

  1. 移动光标到下面标记 '-->' 位置。
  2. 键入 o 新建一行并输入您的答案。
 --> What is the best editor? 
     你觉得最棒的编辑器是?

章节 2 概要

  • 键入 a 可以追加选区内容。

  • 键入 I 光标会移动到行首第一个空白字符并进入插入模式。

  • 键入 A 会在行尾进入插入模式。

  • 使用 oO 将会在光标下方和上方创建新的行。

3.1 移动命令和选区

键入 w 会选择内容直到下一个单词的开头之前。

实际上,光标可以理解为单个字符的选择区(selection),之前学习的 d 键删除并非是光标下的字符,而是删除选区中的内容。

  1. 移动光标到下面标记 '-->' 位置。
  2. 移动光标到所需要删除单词的起始位置。
  3. 键入 w 可以看到选择了单词直到下个单词的开头之前的位置。
  4. 键入 d 删除所选择的内容。
  5. 重复操作,删除多余的单词,直到和对照内容一致。
 --> This sentence pencil has vacuum extra words in the it.
     This sentence has extra words in it.

3.2 常用移动命令

上一节,我们可以看到键入 w 后,光标会从所在位置移动到下个单词的 开始位置,会自动选择光标遍历的内容。这种围绕单词的移动操作非常有 利于选择单词并对其进行操作。

常用的移动操作包括:

  • w - 向前移动光标直到下个单词开头之前。
  • e - 向前移动光标直到当前单词的末尾。
  • b - 向后移动光标直到当前单词的开头。

单词移动 w,e,b 移动操作有对应 W,E,B,它们遍历的内容包括单词和一 些其他的分割字符,比如标点符号(英文半角)。而单词移动会把其他符号 也看做单词,除了空白。

当然,这些移动操作都会自动选择光标遍历的文本内容。

3.3 更改命令

键入 c 可以修改当前的选区。

该更改命令会删除当前选区并进入插入模式,可以看作 di 的快捷命令。

  1. 移动光标到下面标记 '-->' 位置。
  2. 移动光标到错误单词的开始位置,键入 w 进行选择。
  3. 键入 c 删除该单词并进入插入模式。
  4. 输入正确的单词。
  5. 重复操作,直到和下一行的对照内容一致。
 --> This paper has heavy words behind it.
     This sentence has incorrect words in it.

3.4 计数重复移动操作

在移动动作前输入数字可以让它重复操作多次。

  1. 移动光标到下面标记 '-->' 位置。
  2. 键入 2w 向前移动到第二个单词末尾。
  3. 键入 3e 向前移动到之后第三个单词的词尾。
  4. 键入 2b 向后移动两个单词。
  5. 试着输入和上面不同的数字的操作,然后观察变动。
 --> This is just a line with words you can move around in.

3.5 选择模式 / 扩展模式

键入 v 进入选择模式。
键入 v 后输入 Esc 可以返回普通模式。

在选择模式下,移动操作不会重置选择内容,而会扩展当前的选择内容。

  1. 移动光标到下面标记 '-->' 位置。
  2. 移动光标到 FOO 的首字母,键入 v2w 就可以选择之后的两个单词。
  3. 键入 d 可以删除当前的两个单词,可以看到 d 后返回到普通模式。
  4. 移动光标到 BAZ 的首字母,然后重复之前的操作。
 --> Remove the FOO BAR distracting words BAZ BIZ from this line.

3.6 行选择

键入 x 可以选择整行,再键入 x 可以继续选择下一行。

  1. 移动光标到下方标记 '-->' 第二行。
  2. 键入 x 选择当前行,然后键入 d 删除行。
  3. 移动光标到第4行(这里是标记为4的行)。
  4. 键入 x 两次或者键入 2x 选择两行,使用 d 删除选区。
 --> 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.

提示:X 命令和 x 很类似,不过该命令没有扩展到下一行的功能,对空 白行也不起作用。

3.7 取消选区

键入 ; (分号)可以取消选区直到单个光标。

有时,您希望在不移动光标(可能为多个光标)的情况下取消选择的内 容,使用 ; 键进行操作。

  1. 移动光标到下面标记 '-->' 的行。
  2. 使用之前学习的移动操作或者选择模式进行选择,然后使用 ; 取消 所选的内容。
 --> This is an error-free line with words to move around in.

提示:该操作在选择模式中也起作用。

提示:还有一个相关的命令 Alt-; 可以翻转选区。这里你可以观察下 光标位置的变动。

章节3 概要

  • 键入 w 光标向前移动选择直到下个单词。

    • 键入 e 向前选择到当前单词末尾
    • 键入 b 向后选择到当前单词首字母
    • 使用大写的 W,E,B 选择词汇
  • 键入 d 删除选区

    • 键入 c 删除选区并进入插入模式
  • 在移动操作前键入数字进行复数的操作。

  • 键入 v 进入选择模式,可以使用移动操作扩展选区。

  • 键入 x 选择当前行,继续键入 x 继续向下选择行。

  • 键入 ; (分号) 取消选区到光标位置

4.1 撤销

键入 u 可以撤销之前操作。
键入 U 可以重做撤销的操作。

  1. 移动光标到下面标记 '-->' 的行。
  2. 移动光标到错误的单词,然后键入 d 删除。
  3. 键入 u 撤销你的删除操作。
  4. 修复所有错误的单词。
  5. 多次键入 u 撤销你的修复。
  6. 多次键入 U 重做你撤销的修复。
 --> Fiix the errors on thhis line and reeplace them witth undo.
     Fix the errors on this line and replace them with undo.

4.2 复制和粘贴文本

键入 y 来复制选区内容。
键入 p 将复制的内容粘贴到光标位置的后面。
键入 P 将复制的内容粘贴到光标位置的前面。

  1. 移动光标到下面标记 '-->' 的行。 确认您的光标在 banana 的首字母上。
  2. 键入 w 选中单词 banana 然后键入 y 来复制选择的内容。
  3. 移动光标到 2 和 3 中间键入 p 来粘贴内容。
  4. 在 3 和 4 中间重复操作。
 --> 1 banana 2 3 4
     1 banana 2 banana 3 banana 4

提示:当您删除(d)和修改(c)文本的时候,Helix 会自动复制修改的 内容到寄存器。使用 Alt-d / Alt-c 可以避免这种复制操作。

提示:默认情况下,Helix 不会共享复制的内容给系统的剪贴板。使用 Space + y / p 可以在系统的剪贴板复制和粘贴内容。

提示:y 这里是 yank (抽拉)首字母,意指将内容抽取到寄存器(可以 理解为剪贴板)。使用 yank 而非 copy 是来自 Vim 的历史原 因。教程第八节介绍寄存器,在这之前您可以理解为复制。

4.3 在文件中搜索

键入 / 会从当前光标位置在当前文件中向前搜索,回车后确认搜索。
键入 n 会移动到下一个匹配的搜索内容。
键入 N 会移动到上一个匹配的搜索内容。

  1. 键入 / 然后输入单词,比如‘banana’。
  2. 回车确认搜索。
  3. 使用 nN 循环导航匹配内容。

搜索使用正则表达式,允许使用复杂的正则表达式匹配目标,您会在该 教程中学习到选择命令(select command)。

提示:键入 ? (Shift-/) 可以向后方向搜索。

提示:与 Vim 不同,? 并不会搜索的方向,N 总是向后,n 总是向前。

章节 4 概要

  • 键入 u 撤销。 键入 U 重做。

  • 键入 y 复制文本,使用 p 粘贴文本。

    • 使用 Space + ySpace + p 在系统剪贴板上复制粘贴。
  • 键入 / 在文件中向前搜索,使用 ? 向后搜索。

    • 使用 nN 可以循环导航匹配内容。

5.1 多光标模式

键入 C 会在下一个合适行的位置复制光标。

  1. 移动光标到下面第一个标记 ‘-->’ 的行。 确保光标在 ‘-->’ 的后面的单词上。
  2. 键入 C 在会自动在下一个适合的行上的位置复制光标。注意它跳过了 中间的行,现在键入的内容会影响所有光标所在的位置。
  3. 使用插入模式修复行内错误内容,两个光标会固定在两行同时处理。
  4. 键入 , (逗号) 移除第二个光标。
 --> Fix th two nes at same ime.
 -->
 --> Fix th two nes at same ime.
     Fix these two lines at the same time.

提示:键入 Alt-C 会向上方向做同样的操作。

5.2 选择命令

键入s 可以在选区中选择匹配内容。

  1. 移动光标到下面标记 ‘-->’ 的行。
  2. 键入 x 选择行。
  3. 键入 s. 会看到选中的提示。(这里 . 是正则表达式)
  4. 键入 apples 然后回车,会看到行中的 apples 都被选中。 这里已经多光标了。
  5. 键入 c 修改 apples 为其他的东西,比如 oranges 。
  6. 键入 Esc 退出插入模式。
  7. 键入 , 移除其余的光标。
 --> I like to eat apples since my favorite fruit is apples.
     I like to eat oranges since my favorite fruit is oranges.

5.3 通过正则选择

和搜索功能一样,选择命令也支持正则表达式,不只是完全匹配。

  1. 移动光标到下面标记 ‘-->’ 的行。
  2. 键入 x 选择行,键入 s
  3. 键入 + (这里是空格加号) 会自动匹配连续空格数量大于1的部分。 键入回车确认选择。
  4. 键入 c 修改匹配内容为单个空格。
  5. 键入 , 取消多光标模式。
 --> This  sentence has   some      extra spaces.
     This sentence has some extra spaces.

提示:如果您想要查询并替换,使用选择命令也可以做到。使用 % 选择 整个文件的内容,然后执行上面的操作。

5.4 对齐选区

键入 & 可以向光标方向按列对齐选区内容。

  1. 移动光标到下面第一个标记 ‘-->’ 的行,确保光标在箭头后面空白 的位置。
  2. 键入 C 4次,或者键入 4C
  3. 键入 W 选择数字和括号。
  4. 键入 & 对齐选中的词汇。
 --> 97) lorem
 --> 98) ipsum
 --> 99) dolor
 --> 100) sit
 --> 101) amet

提示:& 只关心对齐选区的头部,也就是移动方向的末端(多光标所在的 位置),另外一段称作锚(author)。

5.5 按行分割选区

键入 Alt-s 按换行符分割选区。

  1. 移动光标到下面表格首行。
  2. 键入 6x 选择整个表格。
  3. 键入 Alt-s 按行分割选区。
  4. 键入 & 对齐表格。
    | FRUIT   | AMOUNT |
    |---------|--------|
 | Apples  | 8      |
    | Bananas | 6      |
  | Oranges | 3      |
     | Donuts  | 4      |

提示:如果表格是非等长内容,可以使用选择命令 s 选择 | 然后使 用 & 来对齐。

章节 5 摘要

  • 键入 C 在下面合适的行的位置复制光标。 使用 Alt-C 则向上操作。

  • 键入 x 可以在当前选区上正则匹配内容。

  • 键入 & 来按列对齐选区。

  • 键入 Alt-s 按行分割选区。

6.1 单字符选择

键入 f<字符> 会选择并包括找到的字符。
键入 t<字符> 会做选择直到到字符前面的位置。(不包含字符)
键入 F / T 会反方向上做同样的操作。

  1. 移动光标到下面标记 ‘-->’ 的行。确保光标在第一个破折号上。
  2. 键入 f[ 选择到方括号。
  3. 键入 d 删除您的选择区。
  4. 到行末尾,使用 F] 重复操作。
  5. 移动下一行标记 ‘-->’ 后面的位置。
  6. 在这个句子上使用 tT 操作删除破折号。
 --> -----[Free this sentence of its brackets!]-----
 --> ------Free this sentence of its dashes!------

提示:和 Vim 不同,Helix 并没有限制这些命令在当前行上查询,它实 际上是在整个文件中搜索字符的。

6.2 替换命令

键入 r<字符> 会将选区下内容提花为输入的字符。

  1. 移动到下方表格的第二行,确保光标在第一个 = 上。
  2. 键入 t| (Shift-|) 选择整个 = 。
  3. 键入 r- 替换这些内容为 - (破折号)。
 | Month | Days |
 |=======|------|
 | Jan   | 31   |
 | Feb   | 28   |
 | Mar   | 31   |
 | ...   | ...  |

6.3 重复操作

键入 . 会重复最后一次的插入命令操作。
键入 Alt-. 会重复最后一次 f / t 选择操作。

  1. 移动光标到下方标记 ‘-->’ 的行。
  2. 修改,插入或者扩展内容并用 . 来练习重复操作。
  3. 试着使用 f / tAlt-. 选择句子的内容。
 --> This is some text for you to repeat things. You can repeat
     insertions like changing words, or repeat selections like
     f / t.

章节 6 摘要

  • 键入 f / F 来扩展选区并包含查询的字符。

    • 键入 t / T 扩展选区直到查询的字符(不包含)。
  • 键入 r 将选区内容替换为输入字符。

  • 键入 . 重复最后一次的插入操作。

    • 键入 Alt-. 重复最后一次 f / t 选择操作。

7.1 替换为复制的内容

键入 R 会使用复制的内容替换当前选区内容。

  1. 移动光标到下方标记 ‘-->’ 的行。
  2. 键入 w 选择 watermelons 然后键入 y 复制内容。
  3. 继续 w 选择 oranges。
  4. 键入 R 替换 oranges 为复制中的 watermelons。
 --> I like watermelons because oranges are refreshing.
     I like watermelons because watermelons are refreshing.

7.2 合并行操作

键入 J 会将选区的所有行合并。

  1. 移动光标到下方标记 ‘-->’ 的行。
  2. 键入 x 4次或者 4x 选择下面的4行内容。
  3. 键入 J 合并这些行。
 --> This sentence
is spilling over
onto other
lines.

     This sentence is spilling over onto other lines.

7.3 行的缩进处理

键入 > 可以缩进行,键入 < 可以减少行缩进(悬挂缩进)。

  1. 移动光标到下方标记 ‘-->’ 的行。
  2. 移动到第二行,键入 > 缩进处理。
  3. 移动到第三行,键入 < 减少缩进。
 --> These lines
    are indented
         very poorly.

     These lines
     are indented
     much better.

7.4 数字的递增与递减

键入 Ctrl-a选区的数字会进行递增操作。
键入 Ctrl-x选区的数字会进行递减操作。

  1. 移动光标到下面标记 ‘-->’ 的第三行。
  2. 键入 Ctrl-a对标记 2 的部分进行递增操作。
  3. 同样对下面标记为 3 的进行处理。
  4. 移动到标记 6 的位置,键入 Ctrl-x递减处理。
 --> 1) First point.
 --> 2) Added point.
 --> 2) Next point.
 --> 3) Another point.
 --> 6) Last point.

提示:如果光标下没有数字,光标会跳转该行的下一个数字并进行操作。

章节 7 概要

  • 键入 R 会使用寄存器中的内容替代选区。

  • 键入 J 合并行。

  • 键入 <> 进行缩进和悬挂缩进行。

  • 键入 Ctrl-a 递增所选的数字。

    • 键入 Ctrl-x 递减所选的数字。

8.1 寄存器

寄存器是一种用字符为标识,用于存储复制(抽取)文本内容的容器。 寄存器还用于存储最新的搜索词汇和宏操作,在下一章节中会有所介绍。

键入 "<字符> 将选择内容寄存到<字符>标记的寄存器。

  1. 移动光标到下面标记 ‘-->’ 的行。
  2. 键入 w 选择 watermelons ,然后使用 y 复制(抽取)。
  3. 键入 w 选择 bananas。
  4. 现在注册标识 b 到寄存器,键入 "b 然后用 y 复制(抽取)。
  5. 选择 mangoes 然后键入 R 会将其替换为 watermelons 。
  6. 选择 pineapples 然后键入 "bR 会将其替换为 bananas 。
 --> I like watermelons and bananas because my favorite fruits
     are mangoes and pineapples.

提示:Helix 的一些操作比如复制,粘贴,搜索,宏都有默认的寄存器, 在使用自定义的寄存器,可以在操作前先使用 " 选择寄存器。

8.2 宏

宏是一种记录想要重复的一组操作的方法。您还可以将宏记录到特定的 寄存器(默认是 @ )。 输入 Q 开始录制宏,编辑器底部看到提示, 右侧会看到寄存器位置,默认是 ‘[@]’ 。再次键入 Q 会停止录制。 键入 q 会自动重复寄存器 @(默认)中的宏。

  1. 移动光标到下面第一个标记 ‘-->’ 的行。 确保您的光标在 > 上。
  2. 键入 Q 开始录制宏。
  3. 编辑当前行,直到和下面的对照内容一致。
  4. 离开插入模式后,再次键入 Q 停止录制宏。
  5. 移动光标移动到下面第二个 > 上。
  6. 键入 q 执行宏。
 --> ... sentence doesn't have it's first and last ... .
 --> ... sentence doesn't have it's first and last ... .
     This sentence doesn't have it's first and last word.

提示:要多次执行宏,可以追加数字比如 2q

提示:不想使用默认的 @ 的时候,先选择存储的寄存器,例如 "aQ 来 记录宏到寄存器 a 中。使用的时候也是一样,先选择寄存器,后 操作,例如 "a2q 来执行寄存器 a 中的宏两次。

章节 8 概要

  • 键入 " 选择不同的寄存器。

  • 键入 Q 进行开始和停止录制宏,并注册到寄存器,默认是 @

  • 键入 q 会重复默认寄存器 @ 或者选择的寄存器中的宏。

9.1 使用搜索选择内容

使用搜索 / 会自动存储到 寄存器 / 中。
使用 nN 都指向寄存器 / ,这意味着我们不需要输入搜索就可以设 定该寄存器。

键入 * 会自动设置选区内容到寄存器 / 中, (这里的 * 命令可以理解 为 /选区内容的快捷方式),也会设置为搜索项的选项。这将会复制主 选择,将在下一章节的循环选择中介绍。

  1. 移动光标到下面标记 ‘-->’ 的行。
  2. 键入 e 选择 horse ,然后键入 * 。
  3. 使用 nN 来回切换该例子中的 horse 。
 --> A horse is a horse, of course, of course,
 --> And no one can talk to a horse of course.

提示:* 可以看作是 "/y 的快捷方式,真正的动作是将复制的选区内容 放入寄存器 / 中。

9.2 在匹配中追加选区

在选择模式(v)中使用 nN 将不是仅移动光标,而是在每个匹配上追 加选新的选择。

  1. 移动光标到下面标记 ‘-->’ 的行。
  2. 选择第一个 bat 然后键入 * 匹配搜索。
  3. 键入 v 进入选择模式。
  4. 键入 n 会选择另一个 bat。
  5. 键入 c 或者 r 修改 bat 为 cat 。
 --> Everybody wants to be a bat,
 --> because a cat's the only bat
 --> who knows where it's at.

9.3 使用跳转列表

Helix 可以在光标跳跃移动的时候跟踪跳转(jumps),比如搜索或者lsp 中函数定义调转,会将这些存储到跳转列表(jumplist)中。

使用 Ctrl-s 手动保存当前位置到跳转列表中。

使用 Ctrl-i ("in") 和 Ctrl-o ("out") 分别在跳转列表中向前和向后 移动。

使用 Space j 可以打开跳转列表。

  1. 在随意位置键入 Ctrl-s
  2. 移动到该文件其他的位置。
  3. 键入 Ctrl-o (一次) 返回到您刚刚保存的位置。

章节 9 概要

  • 键入 * 可以设置搜索寄存器 / ,然后设置为主要选区。

  • 在选择模式中键入 n / N 可以将每个匹配追加为新的选区。

  • 键入 Ctrl-s 保存当前位置到跳转列表。

    • 键入 Ctrl-iCtrl-o 分别在跳转列表中向前和向后移动。

10.1 循环选区和删除选区

键入 )( 分别向前和向后循环主要选择(多光标模式下)。

键入 Alt-, 删除主要选区。

  1. 移动光标到下面标记 ‘-->’ 的行。
  2. 使用 xx 或者 2x 选择两行。
  3. 键入 s 进入搜索选择,输入 would 并回车。
  4. 使用 () 循环主要选择,并使用 Alt-, 删除第二个 would 的 选择。
  5. 键入 c wood 将剩下的 would 修改为 wood。
 --> How much would would a wouldchuck chuck
 --> if a wouldchuck could chuck would?

10.2 循环多个选择的内容

键入 Alt-(Alt-) 分别可以向前和向后循环多个选择中的内容。

  1. 移动光标到下面标记 ‘-->’ 的行。
  2. 使用 xx 或者 2x 选择两行。
  3. 键入 s 进入搜索选择,输入 through|water|know 并回车。
  4. 使用 Alt-(Alt-) 循环选中的内容。
 --> Jumping through the water,
 --> daring to know.

10.3 变更

键入 可以切换选区字母的大小写。
键入 ` 可以设定选区字母为小写。
键入 Alt-` 可以设定选区字母为大写。

  1. 移动光标到下面标记 ‘-->’ 的行。
  2. 选择每个大写或小写错误的字母,键入 ~ 修改它。
  3. 移动到第二个标记 ‘-->’ 的行。
  4. 键入 x 选择行。
  5. 键入 ` 将行变更为小写。
  6. 移动到第三个标记 ‘-->’ 的行。
  7. 键入 x 选择行。
  8. 键入 Alt-` 将行文本变更为大写。
 --> thIs sENtencE hAs MIS-cApitalIsed leTTerS.
 --> this SENTENCE SHOULD all be in LOWERCASE.
 --> THIS sentence should ALL BE IN uppercase!

10.4 分割选区

键入 S 可以使用正则分割选区内容。

  1. 移动光标到 --- 下面的行。
  2. 键入 xx / =2x= 选择两行。
  3. 键入 S 然后输入 . |! 然后回车(注意 . 和 ! 后都有空格)。 这样可以有效的将选区内容分割为每个句号和叹号对应的句子。
  4. 键入 Alt-; 光标反转。
  5. 键入 ; 撤销选择到单个字符,也就是每个句子的首字母。
  6. 键入 Alt-` 将选择字母大写处理。
---
these are sentences. some sentences don't start with uppercase
letters! that is not good grammar. you can fix this.

章节 10 概要

  • 键入 )( 分别在多个选区中向前和向后循环主要选择。

    • 键入 Alt-, 来删除主选择。
    • 键入 Alt-)Alt-( 可以循环选择的内容。
  • 键入 可以切换选区字母的大小写。

    • 使用 和 Alt- 分别可以设定选区字母为小写和大写。
  • 键入 S 可以使用正则分割选区内容。

该教程还在编著中。 更多的章节仍在计划中。