⚔️ Vim 编辑器
大家好,我是长安!今天来聊聊被称为"编辑器之神"的 Vim,学会它你就是终端里最靓的仔。
🎯 本章目标
跟着长安读完这一章,你将学会:
- Vim 的三种模式
- 基本的编辑操作
- 查找和替换
- 保存和退出(这个最重要!😂)
🤔 为什么要学 Vim?
你可能听说过这个笑话:
问:如何产生一个随机字符串? 答:让新手退出 Vim。
Vim 确实有一定的学习曲线,但它是 Linux 系统管理员的必备技能,原因是:
- 几乎所有 Linux 系统都预装 Vim
- 服务器通常没有图形界面,只能用 Vim
- 一旦学会,编辑效率超高
- 装X必备(开玩笑的...但确实很酷)
🎯 学习建议
不需要一次学完所有功能! 先学会基本操作(移动、编辑、保存),够用就行。 随着使用慢慢积累更多技巧。
🚪 如何打开和退出 Vim
打开文件
# 打开文件(不存在会创建)
vim filename.txt
# 打开多个文件
vim file1.txt file2.txt
# 打开文件并跳到指定行
vim +10 filename.txt
# 以只读模式打开
vim -R filename.txt
退出 Vim(最重要!)
这是新手最关心的问题,先把它搞定:
按 Esc 确保在普通模式,然后输入:
:q 退出(文件未修改)
:q! 强制退出(放弃修改)
:wq 保存并退出
:wq! 强制保存并退出
:x 保存并退出(同 :wq)
ZZ 保存并退出(不用输入冒号)
ZQ 不保存退出
⚠️ 退出秘籍
如果你完全懵了,按下面的步骤操作:
- 疯狂按
Esc(确保退出插入模式) - 输入
:q! - 按
Enter
这样就能退出了,虽然不会保存修改。
🎮 Vim 的三种模式
Vim 有三种主要模式:
┌─────────────┐
│ 普通模式 │ ← 默认模式,按 Esc 回到这里
│ (Normal) │
└──────┬──────┘
│
│ 按 i/a/o 进入
↓
┌─────────────┐
│ 插入模式 │ ← 可以输入文字的模式
│ (Insert) │
└─────────────┘
│ 按 : 进入
↓
┌─────────────┐
│ 命令模式 │ ← 输入命令的模式
│ (Command) │
└─────────────┘
模式切换
| 从 | 到 | 按键 |
|---|---|---|
| 任何模式 | 普通模式 | Esc |
| 普通模式 | 插入模式 | i / a / o |
| 普通模式 | 命令模式 | : |
| 普通模式 | 可视模式 | v |
📝 普通模式操作
移动光标
↑
k
← h l → (方向键也可以用)
j
↓
更多移动方式:
| 按键 | 功能 |
|---|---|
h | 左移一个字符 |
l | 右移一个字符 |
j | 下移一行 |
k | 上移一行 |
w | 跳到下一个单词开头 |
b | 跳到上一个单词开头 |
e | 跳到单词末尾 |
0 | 跳到行首 |
$ | 跳到行尾 |
^ | 跳到行首第一个非空字符 |
gg | 跳到文件开头 |
G | 跳到文件末尾 |
数字G | 跳到指定行(如 10G 跳到第10行) |
Ctrl+f | 向下翻一页 |
Ctrl+b | 向上翻一页 |
进入插入模式
| 按键 | 功能 |
|---|---|
i | 在光标前插入 |
I | 在行首插入 |
a | 在光标后插入 |
A | 在行尾插入 |
o | 在下方新建一行并插入 |
O | 在上方新建一行并插入 |
删除操作
| 按键 | 功能 |
|---|---|
x | 删除光标所在字符 |
X | 删除光标前的字符 |
dd | 删除整行 |
d$ 或 D | 删除到行尾 |
d0 | 删除到行首 |
dw | 删除一个单词 |
3dd | 删除 3 行 |
dG | 删除到文件末尾 |
dgg | 删除到文件开头 |
💡 小技巧
Vim 的"删除"其实是"剪切",删除的内容可以用 p 粘贴回来。
复制粘贴
| 按键 | 功能 |
|---|---|
yy | 复制当前行 |
3yy | 复制 3 行 |
yw | 复制一个单词 |
y$ | 复制到行尾 |
p | 粘贴到光标后 |
P | 粘贴到光标前 |
撤销和重做
| 按键 | 功能 |
|---|---|
u | 撤销(Undo) |
Ctrl+r | 重做(Redo) |
. | 重复上一个操作 |
✏️ 插入模式操作
进入插入模式后,就可以像普通编辑器一样输入文字了。
在插入模式下的快捷键:
| 按键 | 功能 |
|---|---|
Ctrl+h | 删除前一个字符 |
Ctrl+w | 删除前一个单词 |
Ctrl+u | 删除到行首 |
Esc | 返回普通模式 |
🔍 查找和替换
查找
在普通模式下:
/pattern 向下搜索
?pattern 向上搜索
n 跳到下一个匹配
N 跳到上一个匹配
* 搜索光标所在的单词
示例:
/hello 搜索 "hello"
/error 搜索 "error"
替换
在命令模式(按 : 进入)下:
# 替换当前行第一个匹配
:s/old/new/
# 替换当前行所有匹配
:s/old/new/g
# 替换全文第一个匹配(每行)
:%s/old/new/
# 替换全文所有匹配(最常用)
:%s/old/new/g
# 替换时询问确认
:%s/old/new/gc
# 替换指定行范围(第 5 到 10 行)
:5,10s/old/new/g
💾 命令模式操作
按 : 进入命令模式:
| 命令 | 功能 |
|---|---|
:w | 保存 |
:w filename | 另存为 |
:q | 退出 |
:q! | 强制退出(不保存) |
:wq | 保存并退出 |
:e filename | 打开另一个文件 |
:set number | 显示行号 |
:set nonumber | 隐藏行号 |
:数字 | 跳到指定行 |
:!command | 执行外部命令 |
👁️ 可视模式
可视模式用于选择文本:
| 按键 | 功能 |
|---|---|
v | 字符选择模式 |
V | 行选择模式 |
Ctrl+v | 块选择模式(列选择) |
选中后可以进行:
d- 删除选中内容y- 复制选中内容>- 向右缩进<- 向左缩进
⚙️ 常用配置
创建或编辑 ~/.vimrc 文件:
vim ~/.vimrc
添加以下常用配置:
" 显示行号
set number
" 语法高亮
syntax on
" 自动缩进
set autoindent
" Tab 用空格替代
set expandtab
" Tab 宽度
set tabstop=4
set shiftwidth=4
" 搜索高亮
set hlsearch
" 增量搜索
set incsearch
" 忽略大小写搜索
set ignorecase
" 智能大小写
set smartcase
" 显示光标位置
set ruler
" 显示模式
set showmode
" 使用鼠标
set mouse=a
" 配色方案
colorscheme desert
🎯 新手生存指南
如果你是第一次用 Vim,记住这几个就够了:
1. 打开文件:vim filename
2. 按 i 进入插入模式
3. 编辑你的内容
4. 按 Esc 退出插入模式
5. 输入 :wq 保存并退出
常见问题处理
Q: 我按了很多键,屏幕乱了怎么办?
按 Esc,然后按 u 撤销,多按几次
Q: 我不知道在什么模式?
疯狂按 Esc,回到普通模式
Q: 我想放弃所有修改?
按 Esc,然后输入 :q! 回车
🎮 Vim 练习游戏
想要更有趣地学习 Vim?试试这些:
vimtutor - Vim 自带教程
vimtutorVim Adventures - 在线游戏 https://vim-adventures.com/
OpenVim - 交互式教程 https://www.openvim.com/
📝 本章小结
最重要的命令
| 操作 | 按键 |
|---|---|
| 退出不保存 | Esc → :q! |
| 保存退出 | Esc → :wq |
| 进入插入模式 | i |
| 回到普通模式 | Esc |
| 删除一行 | dd |
| 复制一行 | yy |
| 粘贴 | p |
| 撤销 | u |
| 搜索 | /关键词 |
模式记忆
普通模式:浏览和操作,默认模式
插入模式:输入文字,按 i 进入
命令模式:执行命令,按 : 进入
💡 学习建议
- 先学会打开、编辑、保存、退出
- 慢慢学习移动和删除操作
- 遇到问题多按 Esc 和 u
- 坚持使用,熟能生巧
🚀 下一步
Vim 入门了,接下来跟着长安学习 Shell 脚本,让你的电脑自动干活!
—— 编程指南社区 · 长安
