1 简介
增删改查操作
Vim 是一款功能强大的文本编辑器,以其高效的键盘操作和模式切换著称。掌握 Vim 的核心操作(增、删、改、查)可以极大提升编辑效率。下面详细介绍 Vim 的常见用法。

- Vim 的基本模式
Vim 有多个模式,不同模式下按键功能不同:
css
普通模式(Normal Mode):默认模式,用于导航和命令执行(按 Esc 返回)。
插入模式(Insert Mode):用于输入文本(按 i、a、o 等进入)。
可视模式(Visual Mode):用于选择文本(按 v 进入)。
命令模式(Command Mode):用于执行命令(按 : 进入)。
2. 基本增删改查操作
- 2.1 插入文本(增)
在普通模式下,进入插入模式的方式:
css
命令 功能
i 在光标前插入
a 在光标后插入
I 在行首插入
A 在行尾插入
o 在当前行下方插入新行
O 在当前行上方插入新行
示例:
在光标前输入:i → 进入插入模式 → 输入内容 → Esc 退出。
在行尾添加:A → 输入内容 → Esc。
- 2.2 删除文本(删)
在普通模式下删除文本:
bash
命令 功能
x 删除光标所在字符
X 删除光标前一个字符
dd 删除当前行
dw 删除当前单词
d$ 或 D 删除到行尾
d^ 删除到行首
dG 删除到文件末尾
dgg 删除到文件开头
5dd 删除 5 行
示例:
删除当前行:dd
删除 3 行:3dd
删除到行尾:d$
- 2.3 修改文本(改)
Vim 的修改操作通常结合删除和插入:
命令 功能
r 替换单个字符(如 rx 替换为 x)
R 进入替换模式(覆盖输入)
cw 修改当前单词(删除并进入插入模式)
cc 修改整行
C 修改到行尾
s 删除当前字符并进入插入模式
S 删除整行并进入插入模式
示例:
修改单词:cw → 输入新内容 → Esc
替换字符:r + 新字符(如 ra 替换为 a)
- 2.4 查找文本(查)
在普通模式下查找:
ruby
命令 功能
/keyword 向下查找 keyword
?keyword 向上查找 keyword
n 跳转到下一个匹配项
N 跳转到上一个匹配项
* 查找当前光标下的单词(向下)
# 查找当前光标下的单词(向上)
:set hlsearch 高亮所有匹配项
:nohlsearch 取消高亮
示例:
查找 hello:/hello → Enter → n 下一个匹配项。
查找当前单词:*(向下)或 #(向上)。
3. 高级操作
-
3.1 复制、粘贴、撤销
css命令 功能 yy 复制当前行 yw 复制当前单词 p 粘贴到光标后 P 粘贴到光标前 u 撤销操作 Ctrl + r 重做操作
示例:
复制 3 行:3yy → 移动光标 → p 粘贴。
撤销操作:u,重做:Ctrl + r。
-
3.2 移动光标
css命令 功能 h j k l 左、下、上、右 w 跳到下一个单词开头 b 跳到上一个单词开头 0 跳到行首 $ 跳到行尾 gg 跳到文件开头 G 跳到文件末尾 50G 跳到第 50 行 Ctrl + f 向下翻页 Ctrl + b 向上翻页
示例:
跳转到第 10 行::10 或 10G
跳到行尾:$
-
3.3 替换文本
ruby命令 功能 :%s/old/new/g 全局替换 old 为 new :%s/old/new/gc 替换时确认 :10,20s/old/new/g 替换 10-20 行的 old
示例:
替换所有 foo 为 bar::%s/foo/bar/g
仅替换 5-15 行的 test::5,15s/test/new/g
4 实例:
Vim 编辑器替换文件中的 localhost 为 192.168.1.112,可以按照以下步骤操作:
- 方法 1:基本替换命令
用 Vim 打开文件:
vim 文件名 进入命令模式(如果刚打开 Vim,按 Esc 确保在普通模式)。
输入以下替换命令(注意 %s 表示全局替换):
ruby
:%s/localhost/192.168.1.112/g
%s:对整个文件进行操作
bash
/localhost/192.168.1.112/:将 localhost 替换为 192.168.1.112
g:替换所有匹配项(而不仅仅是每行的第一个)
按 Enter 执行替换。
保存并退出:
markdown
:wq
- 方法 2:确认后替换(更安全)
如果希望每次替换前确认,可以添加 c 标志:
ruby
:%s/localhost/192.168.1.112/gc
Vim 会逐个提示是否替换,按 y 确认替换,n 跳过。
- 方法 3:仅替换特定行
如果只想替换 10 到 20 行之间的内容:
bash
:10,20s/localhost/192.168.1.112/g
注意事项 如果 localhost 是单词的一部分(如 mylocalhost),添加单词边界匹配:
ruby
:%s/\<localhost\>/192.168.1.112/g
替换后建议用 :w 先保存,确认无误后再 :q 退出。
如果想撤销替换,在命令模式按 u(撤销)。
查看替换结果但不保存:
ruby
:%s/localhost/192.168.1.112/gn
(n 会报告匹配数量但不实际替换)
5. 总结
插入:i、a、o、I、A、O
删除:x、dd、dw、d$、dG
修改:r、R、cw、cc、C
查找:/keyword、?keyword、n、N、*、#
复制粘贴:yy、p、P、u、Ctrl + r
保存与退出
ruby
命令 功能
:w 保存文件
:wq 或 ZZ 保存并退出
:q! 强制退出(不保存)
:w newfile.txt 另存为新文件
:e filename 打开另一个文件
移动:h j k l、w b、gg G、0 $
替换::%s/old/new/g
保存退出::w、:wq、:q!