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
可批量插入到每行首。