Vim模式基础
Vim主要有三种工作模式,理解这三种模式是使用Vim的基础:
1. 命令模式(Normal Mode)
- 启动Vim后的默认模式
- 用于移动光标、删除文本、复制粘贴等操作
- 按Esc键可从其他模式返回命令模式
2. 插入模式(Insert Mode)
- 用于输入文本内容
- 从命令模式按
i
进入插入模式 - 按Esc返回命令模式
3. 底线命令模式(Command-line Mode)
- 用于执行保存、退出等命令
- 从命令模式按
:
进入 - 执行完毕后自动返回命令模式
光标移动命令
基本移动
vim
h # 向左移动一个字符
j # 向下移动一行
k # 向上移动一行
l # 向右移动一个字符
行内快速移动
vim
0 # 移动到行首
$ # 移动到行尾
^ # 移动到行首第一个非空白字符
w # 移动到下一个单词开头
b # 移动到上一个单词开头
e # 移动到当前单词结尾
文件内快速移动
vim
gg # 移动到文件开头
G # 移动到文件结尾
:n # 移动到第n行(如:10)
% # 移动到匹配的括号(()、[]、{})
屏幕滚动
vim
Ctrl+f # 向下滚动一屏
Ctrl+b # 向上滚动一屏
Ctrl+d # 向下滚动半屏
Ctrl+u # 向上滚动半屏
H # 移动到屏幕顶部
M # 移动到屏幕中间
L # 移动到屏幕底部
文本编辑命令
插入文本
vim
i # 在光标前插入文本
a # 在光标后插入文本
o # 在当前行下方插入新行
O # 在当前行上方插入新行
I # 在行首插入文本
A # 在行尾插入文本
删除文本
vim
x # 删除光标处字符
X # 删除光标前一个字符
dd # 删除当前行
dw # 删除当前单词
d0 # 删除到行首
d$ # 删除到行尾
D # 删除到行尾(同d$)
:n1,n2d # 删除n1到n2行
复制粘贴
vim
yy # 复制当前行
yw # 复制当前单词
y0 # 复制到行首
y$ # 复制到行尾
p # 在光标后粘贴
P # 在光标前粘贴
替换文本
vim
r # 替换光标处字符
R # 进入替换模式,连续替换
cc # 替换当前行
cw # 替换当前单词
C # 替换到行尾
s # 替换光标处字符并进入插入模式
S # 替换当前行并进入插入模式
搜索替换命令
搜索文本
vim
/pattern # 向下搜索pattern
?pattern # 向上搜索pattern
n # 重复上一次搜索
N # 反向重复上一次搜索
* # 搜索光标所在单词
# # 反向搜索光标所在单词
替换文本
vim
:s/old/new # 替换当前行第一个old为new
:s/old/new/g # 替换当前行所有old为new
:%s/old/new/g # 替换文件中所有old为new
:n1,n2s/old/new/g # 替换n1到n2行的old为new
:%s/old/new/gc # 替换时要求确认
文件操作命令
基本操作
vim
:w # 保存文件
:w filename # 保存为filename文件
:q # 退出Vim
:q! # 强制退出(不保存)
:wq # 保存并退出
:x # 保存并退出(同:wq)
ZZ # 保存并退出(同:wq)
文件管理
vim
:e filename # 打开filename文件
:e! # 重新加载当前文件
:bn # 切换到下一个文件
:bp # 切换到上一个文件
:ls # 列出所有打开的文件
多窗口操作
窗口分割
vim
:split # 水平分割窗口
:vsplit # 垂直分割窗口
:only # 关闭其他窗口,保留当前窗口
:close # 关闭当前窗口
窗口切换
vim
Ctrl+w w # 在窗口间循环切换
Ctrl+w h # 切换到左边窗口
Ctrl+w j # 切换到下边窗口
Ctrl+w k # 切换到上边窗口
Ctrl+w l # 切换到右边窗口
实用技巧
撤销与重做
vim
u # 撤销上一次操作
Ctrl+r # 重做被撤销的操作
. # 重复上一次操作
宏操作
vim
qa # 开始录制宏a
q # 停止录制宏
@a # 执行宏a
@@ # 重复执行上一次宏
缩进操作
vim
>> # 当前行向右缩进
<< # 当前行向左缩进
:n1,n2>> # n1到n2行向右缩进
:n1,n2<< # n1到n2行向左缩进
= # 自动缩进当前行
=G # 自动缩进到文件结尾