vim 编辑模式/命令模式/视图模式常用命令

以下是一份 Vim 命令大全 ,涵盖 编辑模式(Insert Mode)命令模式(Normal Mode)视图模式(Visual Mode) 的常用操作,适合初学者和进阶用户使用。


🧾 Vim 模式简介

Vim 是一个模式化编辑器,主要有以下几种模式:

模式 进入方式 说明
正常模式(Normal Mode) 启动 Vim 默认进入此模式 可执行移动光标、复制粘贴等操作
插入模式(Insert Mode) i, a, o 等键进入 可以输入文本内容
视觉模式(Visual Mode) v, V, Ctrl + v 进入 可以选择文本块进行操作
命令行模式(Command-line Mode) :/ 进入 执行保存、搜索、替换等命令

🔧 一、正常模式(Normal Mode)命令

启动 Vim 默认进入此模式。按下 Esc 可从其他模式返回。

🔍 光标移动

命令 功能
h 向左移动一个字符
j 向下移动一行
k 向上移动一行
l 向右移动一个字符
w 移动到下一个单词的开头
b 移动到上一个单词的开头
e 移动到当前或下一个单词的结尾
0 移动到当前行的行首
$ 移动到当前行的行尾
gg 跳转到文件开头
G 跳转到文件末尾
nG 跳转到第 n 行(如 5G 到第 5 行)
Ctrl + f 向下翻页
Ctrl + b 向上翻页
Ctrl + d 向下滚动半页
Ctrl + u 向上滚动半页

✏️ 编辑操作

命令 功能
x 删除当前字符
X 删除前一个字符
dw 删除一个单词
dd 删除整行
ndd 删除 n 行(如 3dd 删除 3 行)
d$ 删除从光标位置到行尾
d0 删除从光标位置到行首
yy 复制当前行
nyy 复制 n 行
yw 复制一个单词
p 在光标下方粘贴
P 在光标上方粘贴
u 撤销一次修改
Ctrl + r 重做一次撤销
. 重复上一次编辑操作

⚙️ 文件操作

命令 功能
:w 保存文件
:w filename 另存为 filename
:q 退出(无修改时)
:q! 强制退出且不保存修改
:wq 保存并退出
:wq! 强制保存并退出
:e filename 打开另一个文件
:set number:set nu 显示行号
:set nonumber:set nonu 隐藏行号
:set list 显示隐藏字符(如空格、Tab)
:set tabstop=4 设置 Tab 宽度为 4 个字符
:set autoindent 自动缩进
:set paste 进入粘贴模式(防止自动缩进干扰)
:set nopaste 关闭粘贴模式

🔍 搜索与替换

命令 功能
/pattern 向后搜索 pattern
?pattern 向前搜索 pattern
n 查找下一个匹配项
N 查找上一个匹配项
:%s/old/new/g 替换整个文件中的 old 为 new
:1,10s/old/new/g 替换第 1~10 行中的 old 为 new
:s/old/new/ 替换当前行第一个匹配项
:s/old/new/g 替换当前行所有匹配项
:s/old/new/gc 替换当前行所有匹配项,并确认每个替换

✍️ 二、插入模式(Insert Mode)

按以下任意键可进入插入模式,按 Esc 返回正常模式。

命令 功能
i 在光标前插入
I 在行首插入
a 在光标后插入
A 在行尾插入
o 在当前行下方新建一行并插入
O 在当前行上方新建一行并插入
s 删除当前字符并进入插入模式
S 删除当前行并进入插入模式

🧮 三、视觉模式(Visual Mode)

按以下任意键进入视觉模式,用于选中文本进行操作。

命令 功能
v 字符选择模式(Character-wise Visual Mode)
V 行选择模式(Line-wise Visual Mode)
Ctrl + v 块选择模式(Block-wise Visual Mode)
o 切换光标起始点
> 向右缩进选中区域
< 向左缩进选中区域
y 复制选中内容
dx 删除选中内容
c 删除选中内容并进入插入模式
: 对选中区域执行命令(如 :'<,'>s/old/new/g

💡 四、命令行模式(Command-line Mode)

:/? 进入该模式,用于执行命令。

命令 功能
:w 保存
:q 退出
:wq 保存并退出
:q! 不保存强制退出
:/pattern 搜索 pattern 并跳转到第一次出现的位置
:help 打开帮助文档
:help keyword 查找关键字的帮助信息
:registers 查看剪贴板寄存器内容
:map 查看按键映射
:syntax on/off 开启/关闭语法高亮
:filetype plugin indent on 开启智能缩进和插件支持

🎨 五、高级技巧(可选)

技巧 命令
多窗口分屏 :split(水平)或 :vsplit(垂直)
切换窗口 Ctrl + w + 方向键
打开多个文件 vim file1 file2
在多个文件之间切换 :next / :prev / :first / :last
加载插件管理器(如 Plug) :PlugInstall(需配置 vim-plug)
使用宏录制 q{a-z} 录制宏,@{a-z} 执行宏
快速注释代码(结合插件) NERD Commenter: <leader>cc 注释选中行

📄 六、实用示例

示例 1:查找并替换

vim 复制代码
:%s/foo/bar/g

将全文中所有 foo 替换为 bar

示例 2:显示行号并跳转到第 50 行

vim 复制代码
:set number
:50

示例 3:多窗口打开两个文件

vim 复制代码
:split otherfile.txt

示例 4:快速删除 5 行

vim 复制代码
5dd

📚 总结表格

操作 命令
进入插入模式 i, a, o
返回正常模式 Esc
删除字符 x
删除行 dd
复制行 yy
粘贴 p
撤销 u
重做 Ctrl + r
保存 :w
退出 :q
保存并退出 :wq
搜索 /keyword
替换 :%s/old/new/g
显示行号 :set number
进入选择模式 v, V, Ctrl + v

如果你是新手,可以先掌握以下核心命令:

vim 复制代码
i           # 进入插入模式
Esc         # 返回正常模式
:wq         # 保存并退出
:x          # 保存并退出(简写)
dd          # 删除一行
yy p        # 复制粘贴一行
u           # 撤销
Ctrl + r    # 重做

相关推荐
慧都小妮子13 小时前
标签打印如何减少手工抄数?用Bartender 直连 Excel 批量打印
excel·bartender·条码打印·标签打印软件·数据驱动打印·工业打印机
SunnyDays101121 小时前
Java 设置 Excel 数据验证:整数、日期、文本长度、下拉列表和时间
java·excel·数据验证·下拉列表
Metaphor6921 天前
使用 Python 设置 Excel 行列自适应 【代码示例】
python·excel
用户0332126663672 天前
使用 Python 设置 Excel 行列自适应 【代码示例】
python·excel
企业数字化笔记2 天前
固定资产Excel批量导入怎么防重复?资产编码、重复检查和错误回执
java·后端·excel
CORNERSTONE3652 天前
低代码开发有哪些应用场景?
低代码·excel·erp·mes·企业数字化
典典分享指南2 天前
AI 配图的排版规范
macos·docker·github·vim·visual studio
小葱炖豆腐2 天前
python绘制excel折线图
python·excel·numpy·pandas·matplotlib
cspttty3 天前
2026年财务分析岗JD中的Excel、SQL、BI与业务分析要求
大数据·sql·excel
cspttty3 天前
HR数字化校招准备路线:Excel、SQL、BI和AI工具怎么学
人工智能·sql·excel