第 13 篇:文本编辑入门 – 使用 Vim
学习目标
- 掌握 Vim 的三种基本模式:普通模式、插入模式、命令模式
- 学会打开、编辑、保存、退出文件
- 掌握几个最常用的操作:移动光标、删除、复制、粘贴
核心概念
Vim 模式
- 普通模式(Normal):默认模式,按 Esc 回到该模式。用于移动、删除、复制。
- 插入模式(Insert):按 i、a、o 进入,可输入文本。
- i —— insert 在光标前面
- a —— append 在光标后面
- o —— open 新开一行
- 命令模式(Command):在普通模式按
: 进入,可执行保存、退出、查找等。
基本操作速查
| 操作 |
命令 |
说明 |
| 打开文件 |
vim file.txt |
|
| 退出(不保存) |
:q! |
强制退出 |
| 保存并退出 |
:wq 或 ZZ |
|
| 保存 |
:w |
|
| 进入插入模式 |
i |
(当前位置前插入)a 在之后,o 新开一行 |
| 删除一个字符 |
x |
|
| 删除一行 |
dd |
|
| 删除3行 |
3dd |
数字+dd 代表删除几行 |
| 删除到行尾 |
D |
|
| 删除 从光标到行首 |
d0 |
|
| 删除 从光标到行尾 |
d$ |
|
| 删除 一个单词 |
dw |
|
| 复制一行 |
yy |
|
| 复制3行 |
3yy |
数字+yy 代表复制几行 |
| 复制 从光标到行首 |
y0 |
|
| 复制 从光标到行尾 |
y$ |
|
| 复制 一个单词 |
yw |
|
| 粘贴 |
p(后)或 P(前) |
|
| 撤销 |
u |
|
| 重做 |
Ctrl + r |
|
| 查找 |
/keyword,按 n 下一个 |
普通模式,向下找,按n的时候光标往下移动 |
| 查找 |
?keyword,按 n 下一个 |
普通模式, 向上找,按n的时候光标往上移动 |
| 查找 |
/正则或 ?正则 |
. = 任意一个字符 * = 任意次数 ^ = 行首,$ = 行尾 \c = 不区分大小写 < > = 完整单词 |
| 取消查找高亮 |
:nohl (no highlight) |
普通模式下输入 |
| 移动光标 |
h左 j下 k上 l右 |
也可用方向键 |
| 移动到第一行 |
gg |
|
| 移动到最后一行 |
G |
|
| 移动到行首 |
0 |
|
| 移动到行尾 |
$ |
|
| 全行替换 |
:s/old/new/g |
|
| 全文替换 |
%s/old/new/g |
|
| 全文替换 |
%s/old/new/gc |
带询问安全替换 |
| 全文替换 |
%s/old/new/gi |
忽略大小写 |
动手实验
实验 1:创建并编辑一个新文件
vim first.txt
# 按 i 进入插入模式
# 输入 "Hello Vim!"
# 按 Esc 回到普通模式
# 输入 :wq 保存退出
实验 2:修改已有配置文件(练习)
cp /etc/hosts ~/hosts_test
vim ~/hosts_test
# 移动光标到某一行,按 dd 删除
# 按 o 在下方新开一行,输入 127.0.0.1 myhost
# 按 Esc,:wq 保存
实验 3:查找与替换
vim ~/hosts_test
# 输入 :%s/127.0.0.1/localhost/g # 将全文所有 127.0.0.1 替换为 localhost
# 按 :wq 保存退出
常见错误
- 无法输入:处于普通模式,按
i 进入插入
- 无法退出:按 Esc 确保在普通模式,然后
:q!
- 误操作:按
u 撤销
思考题
- Vim 中如何将第 5 行到第 10 行复制到文件末尾?
- 如何设置显示行号?提示:
:set number