Linux下的Vim是一款功能极其强大的文本编辑器,广泛应用于系统管理、程序开发和日常文本处理,掌握Vim命令能极大提升工作效率,以下从基础操作、编辑模式、高级功能及实用技巧等方面详细介绍Vim命令大全。

基础操作与模式切换
Vim有三种基本模式:普通模式(Normal Mode)、插入模式(Insert Mode)和可视模式(Visual Mode),启动Vim后默认处于普通模式,需通过命令切换模式。
-
启动与退出:
vim filename:打开或创建文件并进入普通模式。q:退出当前文件(未修改时可直接使用)。wq:保存并退出。q!:强制退出不保存修改。w filename:将文件另存为指定名称。
-
模式切换:
- 普通模式 → 插入模式:
i(光标前插入)、a(光标后插入)、o(当前行下方新开一行插入)。 - 插入模式 → 普通模式:
Esc键。 - 普通模式 → 可视模式:
v(字符可视)、V(行可视)、Ctrl+v(块可视)。 - 可视模式 → 普通模式:
Esc键。
- 普通模式 → 插入模式:
普通模式下的核心命令
普通模式是Vim操作的核心,支持光标移动、文本删除、复制粘贴等操作。

-
光标移动:
- 基本移动:
h(左)、j(下)、k(上)、l(右)。 - 单词移动:
w(到下一个单词首)、e(到当前单词尾)、b(到上一个单词首)。 - 行内移动:
0(行首)、(行尾)、^(到行首非空字符)。 - 页面移动:
gg(跳到首行)、G(跳到末行)、Ctrl+f(向下翻页)、Ctrl+b(向上翻页)。
- 基本移动:
-
文本编辑:
- 删除:
x(删除光标处字符)、dd(删除当前行)、dw(删除一个单词)、d$(删除到行尾)。 - 复制与剪切:
yy(复制当前行)、yw(复制一个单词)、p(粘贴到光标后)、P(粘贴到光标前)。 - 撤销与重做:
u(撤销)、Ctrl+r(重做)。
- 删除:
-
替换与查找:
- 替换:
r+ 字符(替换光标处单个字符)、R(进入替换模式,连续替换)。 - 查找:
/keyword(向下查找)、?keyword(向上查找)、n(跳到下一个结果)、N(跳到上一个结果)。
- 替换:
插入模式与可视模式操作
-
插入模式扩展:
(图片来源网络,侵删)Ctrl+h:删除前一个字符。Ctrl+w:删除前一个单词。Ctrl+j:换行(不退出插入模式)。
-
可视模式操作:
- 文本选择:
v(字符)、V(行)、Ctrl+v(块),配合h/j/k/l扩展选择范围。 - 编辑选中文本:
d(删除)、y(复制)、c(删除并进入插入模式)。 - 块操作:
Ctrl+v进入块可视后,I+ 文本 +Esc,可在每行首批量插入文本。
- 文本选择:
命令行模式与高级功能
通过进入命令行模式,支持文件操作、配置设置及高级编辑功能。
-
文件操作:
w:保存当前文件。wq!:强制保存并退出。e filename:打开另一个文件。r filename:将指定文件内容插入到当前光标位置。
-
分屏与标签页:
- 分屏:
split(水平分屏)、vsplit(垂直分屏)、Ctrl+w+w(切换分屏窗口)。 - 标签页:
tabnew(新建标签页)、tabn(切换到下一个标签页)、tabp(切换到上一个标签页)。
- 分屏:
-
高级编辑:
- 替换:
%s/old/new/g(全局替换)、%s/old/new/gc(全局替换并确认)。 - 缩进与格式化:
>>(当前行右移缩进)、<<(左移缩进)、gg=G(全文格式化)。 - 宏录制:
qa(录制宏到寄存器a)、q(停止录制)、@a(执行宏)。
- 替换:
实用技巧与配置优化
- 快捷键映射:在
.vimrc配置文件中添加映射,如nnoremap <leader>w :w<CR>(按<leader>w保存)。 - 自动补全:安装
YouCompleteMe或coc.nvim插件,支持代码补全。 - 语法高亮:
syntax on开启语法高亮,或通过.vimrc配置syntax enable。 - 多文件编辑:
args *.c(打开所有.c文件)、next/prev切换文件。
相关问答FAQs
Q1: 如何在Vim中同时编辑多个文件?
A1: 可通过分屏或标签页实现,分屏命令为split filename(水平分屏)或vsplit filename(垂直分屏),通过Ctrl+w+w切换窗口;标签页操作为tabnew filename新建标签页,tabn/tabp切换,也可使用args *.c批量打开文件,配合next/prev或first/last遍历文件。
Q2: Vim如何实现批量替换文本?
A2: 使用命令行模式的替换命令:%s/old_text/new_text/g全局替换,或%s/old_text/new_text/gc全局替换并逐个确认,若需替换特定范围,如10-20行,可用10,20s/old/new/g,块可视模式下(Ctrl+v),选中多行后按I插入文本,按Esc可批量插入到每行首。
