1.vi 编辑器有哪三种模式?
在 Linux 和 Unix 系统中广泛使用的 vi 编辑器主要有三种模式,分别是命令模式(Command mode)、插入模式(Insert mode)和底行模式(Last line mode),以下为你详细介绍:
命令模式
- 进入方式:启动 vi 编辑器后,默认进入的就是命令模式。
- 功能用途:此模式主要用于对文本进行快速的移动、复制、粘贴、删除等操作。在这个模式下,用户输入的按键会被解释为命令,而不是直接输入到文本中。
- 常用命令示例
h、j、k、l:分别对应左、下、上、右方向的光标移动。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)。
在命令模式下,你不能直接输入文本到文件中,因为此时输入的按键会被当作命令来执行。该模式提供了丰富的文本操作命令,可用于移动光标、复制、粘贴、删除等操作,比如使用 h、j、k、l 分别实现光标向左、下、上、右移动;用 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 键
这是最常见、最直接的从编辑模式切换到命令模式的方法。无论你是通过 i、a、o 等命令进入的编辑模式,只要按下键盘上的 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 编辑器如何复制多行内容?
可视模式复制
可视模式能让你直观地选择要复制的文本区域,步骤如下:
- 进入可视模式:
- 若要按字符选择,可按
v键进入可视字符模式。 - 若想按行选择,可按
V(即Shift + v)键进入可视行模式。 - 若要按块选择,可按
Ctrl + v进入可视块模式。
- 若要按字符选择,可按
- 选择要复制的内容:
- 使用方向键(上
↑、下↓、左←、右→)来移动光标,以选中多行内容。在可视行模式下,每按一次向下或向上的方向键,就会选中一整行。
- 使用方向键(上
- 复制选中的内容:选中所需内容后,按
y键进行复制(y是 “yank” 的缩写,意为复制)。 - 粘贴复制的内容:将光标移动到你想要粘贴内容的位置,按
p键(在光标后粘贴)或P键(在光标前粘贴)。
示例:
假设你要复制从第 3 行到第 5 行的内容,操作步骤如下:
收起
plaintext
1. 按 `V` 进入可视行模式。
2. 使用向下方向键 `↓` 两次,此时第 3、4、5 行被选中。
3. 按 `y` 复制选中的三行内容。
4. 将光标移动到要粘贴的位置,按 `p` 粘贴内容。
行号指定复制
如果你知道要复制的行号范围,也可以通过指定行号来复制多行内容,步骤如下:
- 进入命令模式:在正常模式下,按
:键进入命令模式。 - 指定复制范围:输入
nyy或y nG命令,其中n表示要复制的行数。例如,要复制当前行及其下面的 2 行,可输入3yy或y 3G。 - 粘贴复制的内容:将光标移动到目标位置,按
p或P键进行粘贴。
示例:
假设要复制第 5 行到第 7 行的内容,操作步骤如下:
收起
plaintext
1. 将光标移动到第 5 行。
2. 输入 `3yy` 复制这三行内容。
3. 将光标移动到目标位置,按 `p` 粘贴内容。
指定行号范围复制
若你明确知道要复制的起始行号和结束行号,还可以使用以下方法:
- 进入命令模式:在正常模式下,按
:键。 - 指定行号范围:输入
:起始行号,结束行号y命令,例如,要复制第 8 行到第 10 行的内容,可输入:8,10y。 - 粘贴复制的内容:将光标移动到目标位置,按
p或P键进行粘贴。
通过以上方法,你可以在 Vi 编辑器中方便地复制多行内容。
7.vi 编辑器如何粘贴内容到当前行的下一行?
前提说明
在 vi 编辑器里,操作需要区分不同的模式,主要有命令模式、插入模式和底行模式。粘贴操作通常在命令模式下完成,而复制文本时可能需要在可视模式或命令模式中进行。
复制文本
在粘贴之前,你需要先复制想要粘贴的内容,复制文本有多种方法:
可视模式复制
- 进入命令模式:如果当前处于插入模式,按
Esc键回到命令模式。 - 进入可视模式:在命令模式下,按
v进入字符可视模式,按V进入行可视模式,按Ctrl + v进入块可视模式。一般来说,若要复制整行内容,使用行可视模式(按V)更方便。 - 选择要复制的内容:使用方向键(上、下、左、右)移动光标来选择文本范围。
- 复制选中内容:选好内容后,按
y键(“yank” 的缩写,意为复制),即可将选中的内容复制到缓冲区。
命令模式复制
- 复制当前行:在命令模式下,按
yy可复制当前行。 - 复制多行:按
nyy可以复制从当前行开始的n行内容,例如3yy表示复制当前行及下面的 2 行,共 3 行内容。
粘贴内容到当前行的下一行
复制好内容后,继续在命令模式下进行粘贴操作:
- 按
p键:在 vi 编辑器的命令模式中,p命令用于粘贴内容。如果之前复制的是整行内容,按p会将复制的内容粘贴到当前行的下一行;如果复制的是部分字符,p会将内容粘贴到光标之后。
示例操作
以下是一个完整的示例,假设你要将当前行复制并粘贴到下一行:
- 打开 vi 编辑器并编辑文件:
收起
bash
vi test.txt
- 进入命令模式(若不在命令模式),按
Esc键。 - 复制当前行:按
yy。 - 粘贴内容到当前行的下一行:按
p。
通过以上步骤,你就可以将内容成功粘贴到当前行的下一行。
8.vi 编辑器如何删除一行内容?
dd
Vi编辑器三种模式及操作详解
2万+

被折叠的 条评论
为什么被折叠?



