Skip to content

Vim 编辑器速查

Vim 有三种主要工作模式:

模式进入方式说明
普通模式(Normal)启动 Vim 默认进入;按 Esc 返回光标移动、复制、删除、查找等操作
插入模式(Insert)在普通模式按 iao 等键输入和编辑文本内容
命令行模式(Command)在普通模式按 :保存、退出、替换、设置等命令

一、普通模式

光标移动

基本移动

按键说明
h / 光标向左移动一个字符
j / 光标向下移动一行
k / 光标向上移动一行
l / 光标向右移动一个字符
n<Space>向右移动 n 个字符(如 20<Space>
n<Enter>向下移动 n 行(如 5<Enter>

行内移动

按键说明
0移动到本行第一个字符
$移动到本行最后一个字符
+移动到下一行第一个非空格字符
-移动到上一行第一个非空格字符

页面跳转

按键说明
Ctrl + F向下翻一页
Ctrl + B向上翻一页
Ctrl + D向下翻半页
Ctrl + U向上翻半页
H移动到屏幕顶部第一行
M移动到屏幕中间行
L移动到屏幕底部最后一行

文件跳转

按键说明
G移动到文件最后一行
gg移动到文件第一行
nG移动到第 n 行(如 20G,配合 :set nu 使用)

查找

按键说明
/word向后(下)查找字符串 word
?word向前(上)查找字符串 word
n查找下一个匹配项
N查找上一个匹配项

删除

按键说明
x向后删除光标所在字符
X向前删除光标前一个字符
nx向后删除 n 个字符(如 3x
dd删除光标所在整行
ndd删除光标所在行及向下 n 行(如 5dd
d1G删除从光标所在行到文件第一行的所有内容
dG删除从光标所在行到文件最后一行的所有内容

复制与粘贴

按键说明
yy复制光标所在行
nyy复制光标所在行及向下 n 行(如 3yy
y1G复制从光标所在行到文件第一行
yG复制从光标所在行到文件最后一行
p将复制内容粘贴到光标的下一行
P将复制内容粘贴到光标的上一行

其他普通模式操作

按键说明
u撤销上一步操作(undo)
Ctrl + R重做(redo)
J将当前行与下一行合并为一行
.重复执行上一次操作

二、插入模式

在普通模式下按以下键进入插入模式,按 Esc 返回普通模式。

按键说明
i在光标当前位置前插入
I在当前行行首插入
a在光标当前位置后插入
A在当前行行尾插入
o在当前行下方插入新行
O在当前行上方插入新行
r替换光标所在的单个字符
R持续替换光标所在字符,直到按 Esc
Esc退出插入模式,回到普通模式

三、命令行模式

在普通模式下按 : 进入命令行模式。

保存与退出

命令说明
:w保存文件
:w!强制保存(只读文件)
:q退出 Vim(未修改时)
:q!强制退出,不保存修改
:wq保存并退出
:wq!强制保存并退出
:x保存并退出(与 :wq 等价)
ZZ普通模式下快捷保存退出(与 :wq 等价)

文件操作

命令说明
:w <filename>将当前内容另存为新文件
:r <filename>将指定文件内容插入到光标所在行后
:n1,n2 w <filename>将第 n1 到 n2 行的内容保存为新文件

查找与替换

命令说明
:n1,n2s/word1/word2/g在第 n1 到 n2 行间,将 word1 替换为 word2
:1,$s/word1/word2/g全文将 word1 替换为 word2
:1,$s/word1/word2/gc全文替换,每次替换前询问确认(confirm)
:%s/word1/word2/g全文替换(% 等同于 1,$

显示设置

命令说明
:set nu显示行号
:set nonu隐藏行号
:set syntax=on开启语法高亮
:syntax enable启用语法高亮
:set tabstop=4设置 Tab 宽度为 4 个空格

四、语法高亮

vim
" 开启语法高亮
:syntax enable

" 为特定语言加载语法高亮(如 PHP)
:source $VIMRUNTIME/syntax/php.vim

五、常用操作速查

快速入门流程

打开文件  →  vim filename
进入编辑  →  按 i 进入插入模式
编辑内容  →  正常输入文字
保存退出  →  按 Esc,输入 :wq,回车

常用操作组合

vim
" 打开文件
vim filename

" 跳到第 30 行
:30

" 全文搜索并替换
:%s/old/new/g

" 显示行号并跳转到指定行
:set nu
:50

" 删除第 5 到 10 行
:5,10d

" 撤销所有修改,强制退出
:q!

评论区

欢迎留言、补充或勘误。

xiaoba.blog