Spark

Vi编辑器三种模式及操作详解

1.vi 编辑器有哪三种模式?

在 Linux 和 Unix 系统中广泛使用的 vi 编辑器主要有三种模式,分别是命令模式(Command mode)、插入模式(Insert mode)和底行模式(Last line mode),以下为你详细介绍:

命令模式

  • 进入方式:启动 vi 编辑器后,默认进入的就是命令模式。
  • 功能用途:此模式主要用于对文本进行快速的移动、复制、粘贴、删除等操作。在这个模式下,用户输入的按键会被解释为命令,而不是直接输入到文本中。
  • 常用命令示例
    • hjkl:分别对应左、下、上、右方向的光标移动。
    • dd:删除当前行。
    • yy:复制当前行。
    • p:粘贴剪贴板中的内容到当前光标所在行的下一行。

插入模式

  • 进入方式:在命令模式下,按下 i(在当前光标前插入)、a(在当前光标后插入)、o(在当前行的下一行插入新行)等键,即可进入插入模式。
  • 功能用途:在插入模式下,用户可以像在普通文本编辑器中一样输入和编辑文本,输入的字符会直接显示在屏幕上。
  • 退出方式:按下 Esc 键可以从插入模式返回到命令模式。

底行模式

  • 进入方式:在命令模式下,按下 : 键,就会进入底行模式,此时光标会移动到屏幕的最后一行。
  • 功能用途:底行模式主要用于执行一些与文件操作和编辑器设置相关的命令,如保存文件、退出编辑器、查找和替换文本等。
  • 常用命令示例
    • :w:保存文件。
    • :q:退出编辑器(如果文件未修改)。
    • :wq:保存文件并退出编辑器。
    • :q!:不保存文件,强制退出编辑器。
    • :/keyword:从当前位置向下查找关键字 keyword
    • :%s/old/new/g:将文件中所有的 old 替换为 new

这三种模式之间可以灵活切换,熟练掌握它们的操作是高效使用 vi 编辑器的关键。

2.vi 编辑器第一次进入的是什么模式

当第一次启动 vi 编辑器时,默认进入的是命令模式(Command mode)。

在命令模式下,你不能直接输入文本到文件中,因为此时输入的按键会被当作命令来执行。该模式提供了丰富的文本操作命令,可用于移动光标、复制、粘贴、删除等操作,比如使用 hjkl 分别实现光标向左、下、上、右移动;用 dd 删除当前行;yy 复制当前行等。

若你需要输入或编辑文本内容,就得从命令模式切换到插入模式,常见的切换方式是在命令模式下按下 i(在当前光标前插入)、a(在当前光标后插入)、o(在当前行的下一行插入新行)等按键。

如何从底行模式切换到命令模式?

vi编辑器中的插入模式有几种?

如何在vi编辑器中保存和退出文件?

3.vi 编辑器如何从命令模式切换到编辑模式?

1. i 命令

  • 功能:在当前光标所在位置之前插入文本。
  • 示例操作:当你进入 vi 编辑器处于命令模式时,按下键盘上的 i 键,此时编辑器左下角会显示 “-- 插入 --” 字样,表明已进入编辑模式,你就可以开始输入文本了。

2. a 命令

  • 功能:在当前光标所在位置之后插入文本。
  • 示例操作:在命令模式下,按下 a 键,编辑器左下角出现 “-- 插入 --”,进入编辑模式,输入的文本会从光标之后开始显示。

3. o 命令

  • 功能:在当前光标所在行的下一行插入新的一行,并进入编辑模式。
  • 示例操作:处于命令模式时,按下 o 键,会在当前行下方自动创建一个新行,同时进入编辑模式,你可以直接在新行输入内容。

4. O 命令

  • 功能:在当前光标所在行的上一行插入新的一行,并进入编辑模式。
  • 示例操作:在命令模式中按下 O 键,会在当前行上方创建新行,随后进入编辑模式进行文本输入。

5. s 命令

  • 功能:删除当前光标所在的字符,并进入编辑模式。
  • 示例操作:在命令模式下,按下 s 键,当前光标处的字符会被删除,同时进入编辑模式,你可以输入新的字符来替代被删除的字符。

6. S 命令

  • 功能:删除当前光标所在的整行,并进入编辑模式,可在该行位置输入新内容。
  • 示例操作:处于命令模式时,按下 S 键,当前行内容会被清空,然后进入编辑模式,你就可以输入新的一行文本。

4.vi 编辑器如何从编辑模式切换到命令模式?

在 vi 编辑器中,从编辑模式切换到命令模式是非常基础且常用的操作,只需按下特定的按键即可完成,以下为你详细介绍:

按下 Esc 键

这是最常见、最直接的从编辑模式切换到命令模式的方法。无论你是通过 iao 等命令进入的编辑模式,只要按下键盘上的 Esc 键,编辑模式的提示(如左下角显示的 “-- 插入 --”)就会消失,此时你便回到了命令模式,可以使用各种命令对文件进行操作,比如保存文件、退出编辑器、移动光标等。

使用组合键 Ctrl + [

除了 Esc 键之外,Ctrl + [ 组合键也能实现从编辑模式切换到命令模式的功能。当你按下 Ctrl 键不松开,再按下 [ 键,同样可以完成模式的切换。这种方式对于一些 Esc 键位置不太方便按的键盘布局来说,提供了另一种选择。

5.vi 编辑器如何在命令模式下保存内容并推出编辑器?

1. 保存并退出

如果你对文件进行了修改,想要保存修改后的内容并退出 Vi 编辑器,可以使用 :wq 或者 :x 命令。

示例

当你在命令模式下时,按下冒号 : 进入底行模式,然后输入 wq 或者 x,最后按下回车键,Vi 编辑器就会保存文件并退出。

收起

plaintext

:wq

或者

收起

plaintext

:x
两者区别

  • :wq:该命令会先调用 :w 命令将文件内容写入磁盘,然后调用 :q 命令退出编辑器。即使文件内容没有改变,它也会执行写操作。
  • :x:该命令会检查文件内容是否有改变,如果有改变则保存文件,然后退出编辑器;如果文件内容没有改变,则直接退出,不会执行不必要的写操作,因此在某些情况下性能会更好。

2. 强制保存并退出

如果你对文件进行了修改,但由于某些原因(例如文件只读)无法正常保存,此时可以使用 :wq! 命令来强制保存并退出。

示例

在命令模式下,按下冒号 : 进入底行模式,输入 wq!,然后按下回车键。

收起

plaintext

:wq!
注意事项

使用 ! 表示强制执行命令,但这可能会覆盖原有的文件权限或其他设置,因此要谨慎使用。通常只有在你确定可以覆盖原有设置时才使用强制命令。

6.vi 编辑器如何复制多行内容?

可视模式复制

可视模式能让你直观地选择要复制的文本区域,步骤如下:

  1. 进入可视模式
    • 若要按字符选择,可按 v 键进入可视字符模式。
    • 若想按行选择,可按 V(即 Shift + v)键进入可视行模式。
    • 若要按块选择,可按 Ctrl + v 进入可视块模式。
  2. 选择要复制的内容
    • 使用方向键(上 、下 、左 、右 )来移动光标,以选中多行内容。在可视行模式下,每按一次向下或向上的方向键,就会选中一整行。
  3. 复制选中的内容:选中所需内容后,按 y 键进行复制(y 是 “yank” 的缩写,意为复制)。
  4. 粘贴复制的内容:将光标移动到你想要粘贴内容的位置,按 p 键(在光标后粘贴)或 P 键(在光标前粘贴)。

示例
假设你要复制从第 3 行到第 5 行的内容,操作步骤如下:

收起

plaintext

1. 按 `V` 进入可视行模式。
2. 使用向下方向键 `↓` 两次,此时第 3、4、5 行被选中。
3. 按 `y` 复制选中的三行内容。
4. 将光标移动到要粘贴的位置,按 `p` 粘贴内容。

行号指定复制

如果你知道要复制的行号范围,也可以通过指定行号来复制多行内容,步骤如下:

  1. 进入命令模式:在正常模式下,按 : 键进入命令模式。
  2. 指定复制范围:输入 nyy 或 y nG 命令,其中 n 表示要复制的行数。例如,要复制当前行及其下面的 2 行,可输入 3yy 或 y 3G
  3. 粘贴复制的内容:将光标移动到目标位置,按 p 或 P 键进行粘贴。

示例
假设要复制第 5 行到第 7 行的内容,操作步骤如下:

收起

plaintext

1. 将光标移动到第 5 行。
2. 输入 `3yy` 复制这三行内容。
3. 将光标移动到目标位置,按 `p` 粘贴内容。

指定行号范围复制

若你明确知道要复制的起始行号和结束行号,还可以使用以下方法:

  1. 进入命令模式:在正常模式下,按 : 键。
  2. 指定行号范围:输入 :起始行号,结束行号y 命令,例如,要复制第 8 行到第 10 行的内容,可输入 :8,10y
  3. 粘贴复制的内容:将光标移动到目标位置,按 p 或 P 键进行粘贴。

通过以上方法,你可以在 Vi 编辑器中方便地复制多行内容。

7.vi 编辑器如何粘贴内容到当前行的下一行?

前提说明

在 vi 编辑器里,操作需要区分不同的模式,主要有命令模式、插入模式和底行模式。粘贴操作通常在命令模式下完成,而复制文本时可能需要在可视模式或命令模式中进行。

复制文本

在粘贴之前,你需要先复制想要粘贴的内容,复制文本有多种方法:

可视模式复制

  1. 进入命令模式:如果当前处于插入模式,按 Esc 键回到命令模式。
  2. 进入可视模式:在命令模式下,按 v 进入字符可视模式,按 V 进入行可视模式,按 Ctrl + v 进入块可视模式。一般来说,若要复制整行内容,使用行可视模式(按 V)更方便。
  3. 选择要复制的内容:使用方向键(上、下、左、右)移动光标来选择文本范围。
  4. 复制选中内容:选好内容后,按 y 键(“yank” 的缩写,意为复制),即可将选中的内容复制到缓冲区。
命令模式复制

  • 复制当前行:在命令模式下,按 yy 可复制当前行。
  • 复制多行:按 nyy 可以复制从当前行开始的 n 行内容,例如 3yy 表示复制当前行及下面的 2 行,共 3 行内容。

粘贴内容到当前行的下一行

复制好内容后,继续在命令模式下进行粘贴操作:

  • 按 p 键:在 vi 编辑器的命令模式中,p 命令用于粘贴内容。如果之前复制的是整行内容,按 p 会将复制的内容粘贴到当前行的下一行;如果复制的是部分字符,p 会将内容粘贴到光标之后。

示例操作

以下是一个完整的示例,假设你要将当前行复制并粘贴到下一行:

  1. 打开 vi 编辑器并编辑文件:

收起

bash

vi test.txt

  1. 进入命令模式(若不在命令模式),按 Esc 键。
  2. 复制当前行:按 yy
  3. 粘贴内容到当前行的下一行:按 p

通过以上步骤,你就可以将内容成功粘贴到当前行的下一行。

8.vi 编辑器如何删除一行内容?

dd

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值