Vim常用命令详解:从入门到高效编辑

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      # 自动缩进到文件结尾
相关推荐
淮北4945 小时前
vim学习进阶
学习·编辑器·vim
maosheng11465 小时前
RHCSA的第一次作业
linux·运维·服务器
wifi chicken5 小时前
Linux 端口扫描及拓展
linux·端口扫描·网络攻击
旺仔.2916 小时前
Linux 信号详解
linux·运维·网络
放飞梦想C6 小时前
CPU Cache
linux·cache
Hoshino.416 小时前
基于Linux中的数据库操作——下载与安装(1)
linux·运维·数据库
播播资源8 小时前
CentOS系统 + 宝塔面板 部署 OpenClaw源码开发版完整教程
linux·运维·centos
源远流长jerry9 小时前
在 Ubuntu 22.04 上配置 Soft-RoCE 并运行 RDMA 测试程序
linux·服务器·网络·tcp/ip·ubuntu·架构·ip
lay_liu9 小时前
Linux安装redis
linux·运维·redis
寂柒10 小时前
序列化与反序列化
linux·网络