搜索和替换

可以使用 vim search 命令轻松搜索缓冲区中的数据。
要输入搜索字符串,请按正斜杠 (/) 键。
光标移到消息行,vim 显示一个正斜杠。
输入要查找的文本,然后按 Enter 键。
vim 编辑器通过以下三个操作之一进行响应:

  • 如果单词出现在当前光标位置之后,它会跳转到文本出现的第一个位置。
  • 如果该词没有出现在当前光标位置之后,它会环绕文件末尾到文件中出现文本的第一个位置(并用消息指示这一点)。它会产生一条错误消息,指出在文件中找不到该文本。
  • 要继续搜索同一个词,请按正斜杠字符,然后按 Enter 键,或者我们可以使用 n 键进行下一步。

替换命令允许我们快速替换(替换)文本中的一个词。
要使用替代命令,我们必须处于命令行模式。
替代命令的格式为:

:s/old/new/

vim 编辑器跳转到第一次出现的文本 old 并用文本 new 替换它。
我们可以对替换命令进行一些修改以替换不止一次出现的文本:

:s/old/new/g        ## 替换一行中所有出现的 old
:n,ms/old/new/g     ## 替换行号 n 和 m 之间所有出现的 old
:%s/old/new/g       ## 替换整个文件中所有出现的 old
:%s/old/new/gc      ## 替换整个文件中所有出现的 old,但提示每次出现
欢迎 on it road

编辑数据

在插入模式下,我们可以将数据插入缓冲区;但是,有时我们需要在已将数据输入缓冲区后添加或者删除数据。
在正常模式下,vim 编辑器提供了几个用于编辑缓冲区中数据的命令。
下表列出了 vim 的一些常用编辑命令。

命令描述
x删除当前光标位置的字符。
dd删除当前光标位置的行。
dw删除当前光标位置的单词。
d$从当前光标位置删除到行尾。
J删除当前光标位置行尾的换行符(连接行)。
u撤消之前的编辑命令。
a在当前光标位置后追加数据。
A将数据追加到当前光标位置的行尾。
r char用 char 替换当前光标位置的单个字符。
R text用文本覆盖当前光标位置的数据,直到您按 Escape。

一些编辑命令还允许我们使用数字修饰符来指示执行命令的次数。
例如,命令 2x 从当前光标位置开始删除两个字符,命令 5dd 从当前光标位置开始删除五行。

现代编辑器的一个标准功能是能够剪切或者复制数据,然后将其粘贴到文档的其他位置。
vim 编辑器提供了一种方法来做到这一点。
剪切和粘贴相对容易。
我们已经看到了可以从缓冲区中删除数据的命令。
然而,当 vim 删除数据时,它实际上将它存储在一个单独的寄存器中。
我们可以使用 p 命令检索该数据。

例如,我们可以使用 dd 命令删除一行文本,然后将光标移动到缓冲区中要放置它的位置,然后使用 p 命令。
p 命令在当前光标位置的行后插入文本。
我们可以使用任何删除文本的命令来执行此操作。
复制文本有点棘手。
vim 中的复制命令是 y(用于 yank)。
我们可以将与 y 相同的第二个字符与 d 命令一起使用( yw 猛拉一个单词, y$ 猛拉到行尾)。
拉动文本后,将光标移动到要放置文本的位置,然后使用 p 命令。
拉出的文本现在出现在该位置。

猛拉很棘手,因为我们看不到发生了什么,因为我们不会影响我们猛拉的文本。
在将其粘贴到某处之前,我们永远无法确定我们拉的是什么。
但是 vim 中还有另一个功能可以进行 yanking。
当我们移动光标时,视觉模式会突出显示文本。
我们可以使用视觉模式来选择要拉出粘贴的文本。
要进入可视模式,请将光标移动到要开始猛拉的位置,然后按 v。
我们会注意到光标位置处的文本现在已突出显示。
接下来,移动光标以覆盖我们要拉取的文本(我们甚至可以向下移动几行以拉取多行文本)。
当我们移动光标时,vim 会突出显示猛拉区域中的文本。
覆盖要复制的文本后,按 y 键激活 yank 命令。
现在我们已经在寄存器中获得了文本,只需将光标移动到我们想要粘贴的位置,然后使用 p 命令。

vim 基础

vim 编辑器处理内存缓冲区中的数据。
要启动 vim 编辑器,只需输入要编辑的文件 :vim 命令(或者 vi,如果有别名)和文件名

# vi /etc/fstab

如果你在没有文件名的情况下启动 vim,或者如果文件不存在,vim 会打开一个新的缓冲区进行编辑。
如果在命令行中指定一个现有文件,vim 会将该文件的全部内容读入一个缓冲区,准备好进行编辑,如下所示:

vim 编辑器检测会话的终端类型,并使用全屏模式将整个控制台窗口用于编辑器区域。
最初的 vim 编辑窗口显示文件的内容(如果有的话)以及窗口底部的消息行。
如果文件内容没有占据整个屏幕,vim 会在不属于文件的行上放置波浪号。

底部的消息行指示有关已编辑文件的信息,具体取决于文件的状态以及 vim 安装中的默认设置。
如果文件是新文件,则会出现消息 [New File]。

vim 编辑器有两种操作模式:

  • 正常模式
  • 插入模式

当我们第一次打开一个文件(或者启动一个新文件)进行编辑时,vim 编辑器进入正常模式。
在正常模式下,vim 编辑器将击键解释为命令。

在插入模式下,vim 将我们键入的每个键插入缓冲区中当前光标位置。
要进入插入模式,请按 i 键。
要退出插入模式并返回正常模式,请按键盘上的 Escape 键。

在正常模式下,我们可以使用箭头键在文本区域周围移动光标(只要 vim 正确检测到终端类型)。
vim 命令包括用于移动光标的命令:

  • h 向左移动一个字符
  • j 向下移动一行(文本中的下一行)
  • k 向上移动一行(文本中的前一行)
  • l 向右移动一个字符

在大型文本文件中逐行移动会变得乏味。
幸运的是,vim 提供了一些命令来帮助加快速度:

  • PageDown(或者 Ctrl+F )向前移动一屏数据
  • PageUp(或者 Ctrl+B )向后移动一屏数据
  • G 移动到缓冲区的最后一行
  • num G 移动到缓冲区中的行号 num
  • gg 移动到缓冲区的第一行

vim 编辑器在正常模式下有一个特殊功能,称为命令行模式。
命令行模式提供了一个交互式命令行,我们可以其中输入其他命令来控制 vim 中的操作。
要进入命令行模式,请在正常模式下按冒号键。
光标移动到消息行,出现一个冒号,等待我们输入命令。
在命令行模式中,有几个用于将缓冲区保存到文件和退出 vim 的命令:

  • q 如果没有对缓冲区数据进行任何更改,则退出
  • q!退出并放弃对缓冲区数据所做的任何更改
  • w filename 以不同的文件名保存文件
  • wq 将缓冲区数据保存到文件并退出
Linux 使用 Vim 编辑器(文本编辑器)

如果我们在命令行模式下工作,我们可能希望熟悉至少一种在 Linux 控制台中运行的文本编辑器。
vi 编辑器是 Unix 系统上使用的原始编辑器。
它使用控制台图形模式来模拟文本编辑窗口,允许我们查看文件的行、在文件内移动以及插入、编辑和替换文本。

虽然它很可能是世界上最复杂的编辑器(至少在那些讨厌它的人看来),但它提供的许多功能使其成为 Unix 管理员几十年来的主要内容。
当 GNU 项目将 vi 编辑器移植到开源世界时,他们选择对其进行一些改进。
因为它不再像在 Unix 世界中发现的原始 vi 编辑器,开发人员还将它重命名为 vi 改进或者 vim。
为了让系统管理员的工作更轻松,几乎所有 Linux 发行版都创建了一个名为 vi 的别名,指向 vim 程序:

# alias vi='vim'
日期:2020-09-17 00:14:14 来源:oir作者:oir