Vim常用快捷键

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 内浏览、打开、管理文件和目录。

相关推荐
码农101号18 分钟前
Linux中容器文件操作和数据卷使用以及目录挂载
linux·运维·服务器
PanZonghui36 分钟前
Centos项目部署之Nginx 的安装与卸载
linux·nginx
PanZonghui42 分钟前
Centos项目部署之安装数据库MySQL8
linux·后端·mysql
PanZonghui44 分钟前
Centos项目部署之运行SpringBoot打包后的jar文件
linux·spring boot
PanZonghui44 分钟前
Centos项目部署之Java安装与配置
java·linux
程序员弘羽1 小时前
Linux进程管理:从基础到实战
linux·运维·服务器
PanZonghui1 小时前
Centos项目部署之常用操作命令
linux
JeffersonZU1 小时前
Linux/Unix进程概念及基本操作(PID、内存布局、虚拟内存、环境变量、fork、exit、wait、exec、system)
linux·c语言·unix·gnu
大熊程序猿1 小时前
netcore PowerShell 安装-linux
linux·运维
Johny_Zhao2 小时前
Docker 一键安装部署 JumpServer 堡垒机
linux·网络安全·信息安全·云计算·shell·jumpserver·ldap·yum源·系统运维