跳转到内容

学习 vi 编辑器/基本任务

来自维基教科书,开放世界中的开放书籍

学习 vi 编辑器: 熟悉基本任务让您的工作更轻松高级任务细节Vi 克隆 (Vim基本导航模式技巧和窍门程序员需要了解的有用信息增强 VimWindows 上的 VimVimL 脚本语言, Vile, BB vi)vi 参考

现在我们知道了如何调用编辑器并退出编辑器,我们可以开始熟悉如何使用编辑器。

或者,您可以使用 ViM 导师,它包含在许多现代 vim 发行版中。它包含与以下文本基本相同的信息。您可以在 shell 中输入vimtutor来调用导师。

Vi 是一个模式编辑器

[编辑 | 编辑源代码]

vi 编辑器可以做两件事

  • 接受命令,例如删除一行
  • 接受您输入的文本

在 vi 编辑器中,每个任务都是通过将编辑器置于特定的操作模式(通常称为模式)来实现的。当您想要给 vi 一个命令时,您进入命令模式,当您想要输入文本时,您进入插入模式。我们将在下面介绍如何做到这一点。

在开始写作之前设置正确的模式很重要,但这很容易做到。当您第一次启动 vi 时,它会自动处于命令模式。

输入文本

[编辑 | 编辑源代码]

输入文本是编辑器可以执行的最基本的任务!从命令模式(编辑器启动时的模式)开始,按i进入插入模式,您就可以开始输入。您可以使用退格键来纠正您犯的错误。如果您在输入了几句话后犯了一个错误,请暂时保留这些错误,我们将在后面介绍如何纠正它们。输入完毕后,要退出插入模式并返回到命令模式,请按键盘上的 Escape 键(或键入 Control-[)。

让我们做一个练习

  1. 启动编辑器。
  2. 进入插入模式。
  3. 输入一些文本
  4. 返回到命令模式。
  5. 退出编辑器。

解决方案

[编辑 | 编辑源代码]
  1. 我们可以像上一节一样启动编辑器。
  2. 由于编辑器从命令模式开始,因此我们必须按下 <i> 键才能开始输入。
  3. 您可以自己编造一些文本!
  4. 按下 <Escape> 键。
  5. 如果要退出编辑器,您需要处于命令模式。由于按下 Escape 会使您处于命令模式,因此您可以使用上一节中的方法退出:键入 :q!

命令模式

[编辑 | 编辑源代码]

命令模式允许您在 vi 中执行许多有用的任务。

四处移动

[编辑 | 编辑源代码]

假设您已经写了一段时间,忘记了一些东西。按下 <Backspace>擦除先前的工作不是最好的解决方案!我们希望能够在文档中自由移动,移动光标。


我们可以在编辑器中移动,首先进入命令模式,然后使用 <h><j><k><l> 键。

注意
您的箭头键可能已设置为工作,您可以使用它们,但为了熟练掌握和以后的更高级工作,您应该学习使用字母键。
  • 在命令模式下,<h> 键将光标向移动一个字符。
  • 在命令模式下,<j> 键将光标向下移动一个字符。
  • 在命令模式下,<k> 键将光标向上移动一个字符。
  • 在命令模式下,<l> 键将光标向移动一个字符。

如果您记不住这些,请记住 <h> 在最左边,字母 <j> 在行的下方,字母 <k> 在行的上方,<l> 键在最右边。(如果您眯着眼睛看,J 也像一个指向下方的箭头。)

使用这些键移动光标后,您可以再次按 <i> 进入插入模式。当您这样做时,您将在光标处插入文本,将文本插入到光标左侧的字符和光标的当前位置之间。让我们在一个练习中练习一下。


您可以用自己的句子重复此练习。在继续之前,请确保您能够熟练地完成此练习。

  1. 启动编辑器。
  2. 输入文本:“The quick fox jumps over the dog”
  3. 在“quick”和“fox”之间插入单词“brown”。
  4. 在“the”和“dog”之间插入单词“lazy”。
  5. 退出编辑器。

解决方案

[编辑 | 编辑源代码]
  1. 使用上一节中的方法。
  2. 按下 <i>,然后正常输入The quick fox jumps over the dog
  3. 按下 <Escape>,然后按下 <h> 直到光标位于“fox”的字母“f”处。按下 <i>,然后输入“brown ”。
  4. 按下 <Escape>,然后按下 <l> 直到光标位于字母“d”处。按下 <i>,然后输入“lazy ”。
  5. 再次按下 <Escape>,然后键入 :quit!.

更多关于移动

[编辑 | 编辑源代码]

使用 hjkl 可以,但 vi 不止理解行和列。以下是一些按文本对象移动的命令

  • w 向前移动到下一个单词的开头。
  • b 向后移动到上一个单词的开头。
  • () 按句子移动,可以向前或向后。
  • {} 按段落移动。

删除东西

[编辑 | 编辑源代码]

如果你在写了几行代码后发现错误,比如一直按 Backspace 键删除错误并重新开始,这并不总是最好的解决方案。我们需要一种方法来删除编辑过程中出现的错误。

vi 提供了几种删除文本的方法,具体取决于你要删除多少内容。现在你已经熟悉了如何移动光标,一旦你将光标移动到错误位置

  • x 键删除一个字符
  • 按下 dw 删除一个单词。
  • 按下 dd 删除一行

从现在开始,我们将省略启动和退出编辑器的步骤——你应该已经熟悉这些步骤了。

  1. 输入以下文本:Sad I been here, I wouldnt ever ever leave.
  2. 将单词 "Sad" 更改为 "Had"。
  3. 在 "wouldn" 后添加一个撇号。
  4. 删除多余的 "ever"。
  5. 删除整行。

解决方案

[编辑 | 编辑源代码]
  1. 正常输入文本。(你应该已经熟悉了进入和退出插入模式。)
  2. 进入命令模式,使用 h 将光标移动到行首,然后按下 x 删除 "S"。按下 i 进入插入模式,插入 "H",然后按下 Escape 退出插入模式。
  3. 现在将光标定位在 t 上,按下 i 进入插入模式,输入 " ' "。按下 Escape 退出插入模式。
  4. 将光标定位在单词 "ever" 中的第一个 "e" 上(选择你喜欢的一个)。输入 dw 删除该单词。
  5. 输入 dd 删除整行。
[编辑 | 编辑源代码]


学习 vi 编辑器: 熟悉基本任务让您的工作更轻松高级任务细节Vi 克隆 (Vim基本导航模式技巧和窍门程序员需要了解的有用信息增强 VimWindows 上的 VimVimL 脚本语言, Vile, BB vi)vi 参考

华夏公益教科书