Vim 常用快捷键
一、移动光标
vim
h 左移一个字符
l 右移一个字符
j 下移一行
k 上移一行
Ctrl+y 上移一行
Ctrl+e 下移一行
Ctrl+u 上翻半页(up)
Ctrl+d 下翻半页(down)
Ctrl+f 下翻一页(forward)
Ctrl+b 上翻一页(backward)
w 跳到下一个词首
W 跳到下一个词首(长跳,忽略标点)
e 跳到词尾
E 跳到词尾(长跳)
b 跳到上一个词首
B 跳到上一个词首(长跳)
0 跳至行首(第0列)
^ 跳至本行第一个非空字符
$ 跳至行尾
gg 跳至文件首
G 跳至文件尾
5gg / 5G 跳至第5行
gd 跳至当前变量的声明处
fx 跳至本行中下一个字符 x
; 重复上一次 f/F 命令
* 向下查找当前单词
# 向上查找当前单词
二、删除与复制
vim
dd 删除当前行
dw 删除一个单词
d$ / D 删除至行末
x 删除当前字符
X 删除前一个字符
yy 复制当前行
yw 复制一个单词
y$ / Y 复制至行末
p 粘贴至当前行之后
P 粘贴至当前行之前
三、插入模式
vim
i 在光标前插入
I 在行首插入
a 在光标后插入
A 在行尾插入
o 在当前行下插入新行
O 在当前行上插入新行
Esc 退出插入模式
四、编辑
vim
J 将下一行合并到当前行
cc 替换整行
cw 替换一个单词
c$ 替换至行末
s 替换当前字符
S 替换整行(同 cc)
xp 交换当前字符与后一个字符
u 撤销
Ctrl+r 重做
~ 切换当前字符大小写
>> 当前行右缩进
<< 当前行左缩进
== 自动缩进当前行
五、查找与替换
vim
/pattern 向下查找 pattern
?pattern 向上查找 pattern
/\cpattern 忽略大小写查找
/\Cpattern 大小写敏感查找
n 查找下一个匹配项
N 查找上一个匹配项
:%s/old/new/g 替换整个文件中的 old 为 new
:%s/old/new/gc 替换整个文件中的 old 为 new(逐个确认)
六、退出编辑器
vim
:w 保存文件
:wq 保存并退出
:x 保存并退出(与 wq 相同)
:q 退出(有更改会报错)
:q! 强制退出,不保存
七、多文件编辑
vim
vim file1 file2 ... 同时打开多个文件
:args 查看当前打开的文件列表
:next / :prev 切换到下一个/上一个文件
:next! / :prev! 不保存当前文件,切换
:wnext / :wprev 保存并切换
:first / :last 跳至首个 / 最后一个文件
Ctrl+^ 在最近两个文件间切换
分屏窗口
vim
:split / :sp 水平分屏
:split file 打开 file 水平分屏
:vsplit / :vsp file 垂直分屏打开 file
:new file 新窗口打开 file
:close 关闭当前窗口
:only 关闭除当前外的所有窗口
:all / :vertical all 打开所有窗口(垂直)
:qall / :qall! 关闭所有窗口(强制)
:wall 保存所有窗口
:wqall 保存并退出所有窗口
Ctrl-w h/j/k/l 窗口间跳转(左/下/上/右)
Ctrl-w t/b 跳转到最上/最下窗口
八、多标签编辑
vim
:tabedit file 新标签页打开 file
:tab split file 新标签页中分屏打开 file
:tabn / :tabp 切换到下一个/上一个标签页
:tabc 关闭当前标签页
:tabo 关闭除当前外的标签页
gt / gT 跳转到下/上一个标签页
0gt / 5gt 跳至第 1/5 个标签页
九、执行 Shell 命令
vim
:sh 进入 shell,输入 `exit` 或 Ctrl+D 返回 Vim
:!command 执行 shell 命令后返回 Vim
Ctrl+Z 暂停 Vim,进入 shell
fg 从 shell 回到 Vim
:!make 执行 make 命令
十、Vim 启动项
bash
vim -o file1 file2 水平分屏打开多个文件
vim -O file1 file2 垂直分屏打开多个文件
十一、自动排版
vim
gg=G 格式化整个文件(重新缩进)
十二、在 Vim 中编译程序
vim
:make 运行 make 并在 Vim 中显示结果
:copen 打开错误窗口(可点击跳转)
十三、Buffer 操作
状态符说明:
a
活动缓冲区%
当前缓冲区#
上一个缓冲区+
已更改的缓冲区=
只读缓冲区h
隐藏缓冲区
相关命令:
vim
:ls 列出所有 buffer
:bN 跳转到第 N 个 buffer(如 :b2)
:bd 删除当前 buffer
:bn / :bp 下一个 / 上一个 buffer
十四、Vim 操作目录(通过 netrw)
打开目录:
vim
vim . 打开当前目录
vim path/ 打开指定目录
目录操作:
vim
% 创建新文件
d 创建目录
D 删除文件/目录
- 返回上级目录
p/P 粘贴复制/剪切的文件
x 执行文件
t 在新 tab 打开文件
r 重命名文件
s 排序
o 垂直打开文件
mf 标记文件
mu 取消所有标记
mc 复制标记文件
mm 移动标记文件
R 移动文件(rename)
打开当前文件所在目录:
vim
:Explore / :Ex
:Sexplore 水平分屏打开目录
:Vexplore 垂直分屏打开目录
十五、Vim 目录浏览命令(Explore 系列)
这些命令基于内建的 netrw
插件,用于以不同方式打开当前目录或文件所在目录:
vim
:Explore 以当前窗口浏览目录(快捷方式::Ex)
:Sexplore 水平分屏打开目录浏览器(split)
:Vexplore 垂直分屏打开目录浏览器(vsplit)
:Texplore 在新 tab 页打开目录浏览器
:Hexplore 在新的水平窗口打开目录
:Nexplore 在新的垂直窗口中打开目录(类似于 :Vexplore)
:Pexplore 打开上一个浏览过的目录
这些命令适用于快速在 Vim 内浏览、打开、管理文件和目录。