文章目录
- 一、vi 编辑器的工作模式
-
- 1. 工作模式概述
- 2. 模式切换方法
- 二、命令模式中的基本操作
-
- 1. 模式切换
- 2. 光标移动
-
- 2.1 方向移动
- 2.2 翻页移动
- 2.3 行内跳转
- 2.4 行间跳转
- 2.5 显示、取消行号
- 2.6 补充
- 3. 复制、粘贴和删除
-
- 3.1 删除操作
- 3.2 复制操作
- 3.3 粘贴操作
- 3.4 其他操作
- 4. 查找文件内容
- 5. 撤销编辑及保存退出
- 三、末行模式中的基本操作
-
- 1. 保存文件及退出
- 2. 打开新文件或读入内容
- 3. 替换文件内容
- 4. 总结
一、vi 编辑器的工作模式
1. 工作模式概述
vi 编辑器是工作在字符终端环境下的全屏幕编辑器,通过按键命令实现编辑和操作功能。vi 编辑器有三种工作模式:
- 命令模式:默认进入的模式,主要完成光标移动、字符串查找、删除、复制、粘贴等操作。
- 输入模式:用于录入文件内容,修改或添加文本。进入输入模式后,最后一行会显示“– INSERT –”提示。
- 末行模式:用于设置编辑环境、保存文件、退出编辑器、查找替换等操作。进入末行模式后,最后一行会显示冒号“:”提示符。
2. 模式切换方法
- 命令模式 → 输入模式:按 a、i、o 等键。
- 输入模式 → 命令模式:按 Esc 键。
- 命令模式 → 末行模式:按 : 键。
- 末行模式 → 命令模式:按 Esc 键。
二、命令模式中的基本操作
1. 模式切换
在命令模式中,按以下键进入输入模式:
a | 在当前光标后插入内容。 |
A | 在行尾插入内容。 |
i | 在当前光标前插入内容。 |
I | 在行首插入内容。 |
o | 在当前行后插入新行。 |
O | 在当前行前插入新行。 |
2. 光标移动
2.1 方向移动
- 使用 ↑、↓、←、→ 方向键移动光标。
2.2 翻页移动
- Page Down 或 Ctrl + F:向下翻动一整页内容
- Page Up 或 Ctrl + B:向上翻动一整页内容
2.3 行内跳转
- Home、^ 或 0:跳转到行首。
- End 或 $:跳转到行尾。
注:在上述按键操作中,Page Down、Page Up、Home、End 键及方向键同样也可在 vi的输入模式中使用。
2.4 行间跳转
1G 或 gg | 跳转到文件第 1 行 |
G | 跳转到文件最后一行 |
#G | 跳转到文件中“#”(具体用数字替换) |
2.5 显示、取消行号
set nu | 显示行号 |
set nonu | 取消显示行号 |
2.6 补充
w | 跳到下一个单词。 |
b | 跳到上一个单词。 |
H | 跳转到当前屏幕第一行。 |
M | 跳转到当前屏幕中间。 |
L | 跳转到当前屏幕最后一行。 |
3. 复制、粘贴和删除
3.1 删除操作
u | 撤销操作 |
x 键或 Delete 键 | 删除光标处的单个字符。 |
dd | 删除当前光标所在行 |
#dd | 删除从光标处开始的#行内容 |
d^ | 删除当前光标之前到行首的所有字符。 |
d$ | 删除当前光标处到行尾的所有字符。 |
u | 撤销操作 |
3.2 复制操作
yy | 复制当前行 |
#yy | 复制从光标处开始的 # 行 |
3.3 粘贴操作
p | 粘贴到光标后 |
P | 粘贴到光标前 |
3.4 其他操作
r | 修改当前字符 |
Ctrl+r | 修改当前字符 |
4. 查找文件内容
/ | 向后查找字符 |
? | 向前查找字符串 |
n | 跳转到下一个匹配结果 |
N | 跳转到上一个匹配结果 |
5. 撤销编辑及保存退出
在对文件内容进行编辑时,有时候需要对一些失误的编辑操作进行撤销,这时可以使用以下按键。用于取消最近一次的操作,并恢复操作结果。
u | 撤销最近一次操作 |
U | 撤销对当前行的所有编辑 |
ZZ | 保存并退出 |
三、末行模式中的基本操作
1. 保存文件及退出
:w | 文件内容进行修改并确认以后,进行保存。 |
:w /root/newfile | 将当前内容另存为指定路径的新文件 |
:q | 未修改时退出vi编辑器 |
:ql | 强制退出vi编辑器(不保存) |
:wq或x | 保存并退出 |
2. 打开新文件或读入内容
- :e 新文件:打开新文件编辑。 在当前 vi 编辑器中,执行“:e 新的文件”形式的末行命令可以编辑(Edit)新文件。 例如,执行如下的“:e~/initial-setup-ks.cfg”
操作将直接打开当前用户宿主目录中的 initial-setup-ks.cfg 文件进行编辑。
- :r 其他文件:将其他文件内容复制到当前光标处。
3. 替换文件内容
替换命令格式:
: [替换范围] sub /旧的内容/新的内容[/g]
:s ./old/new | 将当前行中扎找到的第一个字符“old” 为 “new” |
:s ./old/new/g | 将当前行中扎找到的所有字符串“old” 为 “new” |
:#,# s/old/new/g | 在行号#,#范围内所有字符串“old” 为 “new” |
:% s/old/new/g | 在整个文件范围内所有字符串“old” 为 “new” |
:s /old/new/c | 替换末尾行加入“c”命令,对每个替换动作提醒 |
3.1验证 3.1.1 s ./old/new 的使用
前 后
3.1.2 “:% s/old/new/g”的使用 前 后
4. 总结
你就学吧,vi编辑器不难,后面一学一个不吱声
评论前必须登录!
注册