在 Vim 中更改、替换和替换

vim 文本编辑器是最流行的基于终端的编辑器之一。 其丰富的命令和灵活性使用户能够以思维的速度进行编码。 Vim 提供了许多有时具有重叠功能的命令。 这些功能在任何意义上都不是多余的,相反,它为用户提供了更多选择如何执行特定任务的自由。

介绍

通常我们需要对现有的文本文件进行更改。 Vim 主要提供了三个高级命令——替换、更改和替换来执行此操作。 虽然这三个词是同义词,因为它们执行完全相同的任务,但它们执行任务的方式不同,因此命令的选择归结为手头任务的复杂程度。 在本文中,我们将讨论这三个命令之间的主要区别以及在何处以及如何使用它们。

差异点 代替 改变 代替
主要击键 r{字符} c{运动} [count]秒
一般功能 替换当前字符或一组字符。 删除字符并将用户置于输入模式。 删除一系列字符并将用户置于插入模式。

三个命令之间的主要差异集。

快速提醒:{} 表示需要一组参数,即 {} 包括其中的文本必须替换为有效值。 这 [] 表示可选参数。 模式也使用 {} 表示,但起始字母是大写,例如:{Insert} 和 {Visual}。 无模式标志表示正常模式。

退出 VIM 编辑器的 10 种方法

在 VIM 上使用 Change、Replace 和 Substitute 命令

1.替换VIM中的命令

替换命令适用于您想要在文本(缓冲区)中进行的非常小的更改。

按字符 电阻 在正常模式下,用户进入替换模式。 替换模式类似于插入模式,但除了您键入的字符会覆盖该位置已经存在的字符这一事实之外。 如果没有更多字符存在,它将像插入模式一样允许您插入任意数量的新字符。

专业提示:如果您在替换模式中犯了一个小的打字错误,只需按退格键而不退出替换模式。 这将恢复在替换模式下对前一个字符所做的更改。

r{char} 

如果您希望进行非常小的更改,例如在不进入替换模式的情况下替换单个字符,您可以只使用 r{char}。 此命令用 {char} 替换当前字符。

图 1:替换命令示例

2. VIM 中的更改命令

虽然替换命令很有用,但在更改大块文本时可能会出现问题。 值得庆幸的是,更改命令可用于此类目的。 更改命令根据动作删除字符并进入插入模式。 更改命令可以与许多其他命令结合使用,以获得最大的生产力。

c{motion} 

根据按下的动作键从文本中删除文本。 以下是一些使用示例:

  • ch – 删除前一个字符并启动插入模式。
  • ck – 删除当前行上方的行并启动插入模式。
  • c$ 或 C – 从当前字符删除到行尾并启动插入模式。
  • cG – 从当前行删除到文本末尾并启动插入模式。
{Visual}c 

更改命令在可视模式下非常有用。 更改命令删除选定的文本块并进入插入模式。

["x]c{motion}	 

用户可能希望将删除的文本保存在寄存器中,只是为了安全或粘贴到其他地方。 下面的命令删除 {motion} 文本到寄存器 X 中并进入插入模式。

图 2:更改命令示例

3. VIM 中的替换命令

vim 中的替换方法的作用类似于更改命令,但它不是将动作作为参数,而是将行数和字符作为参数。 如果您想删除接下来的几个字符/行,而无需在更改命令中麻烦地使用运动键,这会特别有用。

[count]["x]s 

删除 [count] 当前光标右侧的字符数 [to the register x] 并将用户置于插入模式。 s 命令的执行与 cl 类似。

[count]["x]S 

删除 [count] 当前行下方的行数并将用户置于插入模式。

Vim 替换命令图 3:替代命令示例

结论

这将我们带到了文章的结尾。 我希望您对 vim 中的这三个重要命令有了新的了解。 由于 vim 允许在这些命令之上使用许多命令,因此探索所有可能性并不是一个好主意。

人们使用的复杂命令或快捷方式使他们的日常工作变得舒适,您无需在开始时学习所有复杂的东西即可开始在 vim 中进行 hack。

通过几天的练习,一旦您觉得有必要,您就可以慢慢掌握复杂的连词。 您始终可以使用以下命令从手册页中获得一些帮助 :h [search-term] vim里面。