vim
是 Linux/Unix 系统中功能强大的文本编辑器,支持多种模式(如普通模式、插入模式、命令模式),并提供丰富的命令操作,用于编辑、查找、替换、保存等任务。以下是 vim
常用命令及其用法的详解。
启动 vim
打开文件
- 作用:打开
example.txt
文件。如果文件不存在,则创建一个新文件。
打开多个文件
- 作用:同时打开
file1.txt
和 file2.txt
,可以在多个文件之间切换。
打开文件并跳转到指定行
- 作用:打开
example.txt
并直接跳转到第 10 行。
模式切换
三种主要模式
模式 |
进入方式 |
作用 |
普通模式 |
默认进入 |
用于浏览文件、删除文本、复制粘贴等(按 Esc 可回到普通模式)。 |
插入模式 |
按 i 、a 或 o |
用于编辑文本内容。 |
命令模式 |
按 : |
用于执行命令(如保存、退出、查找、替换等)。 |
普通模式命令
普通模式用于文件的浏览、编辑、操作等。
移动光标
命令 |
作用 |
h |
左移光标。 |
l |
右移光标。 |
j |
下移光标。 |
k |
上移光标。 |
w |
移动到下一个单词的开头。 |
e |
移动到当前单词的结尾。 |
b |
移动到上一个单词的开头。 |
0 |
移动到行首。 |
^ |
移动到当前行第一个非空字符处。 |
$ |
移动到行尾。 |
gg |
移动到文件开头。 |
G |
移动到文件末尾。 |
数字G |
跳转到指定行(如 10G 跳到第 10 行)。 |
删除文本
命令 |
作用 |
x |
删除当前光标所在字符。 |
dd |
删除当前行。 |
ndd |
删除从当前行开始的 n 行(如 3dd 删除 3 行)。 |
d$ |
删除从光标处到行尾的内容。 |
d0 |
删除从光标处到行首的内容。 |
复制、剪切和粘贴
命令 |
作用 |
yy |
复制当前行。 |
nyy |
复制从当前行开始的 n 行(如 3yy 复制 3 行)。 |
p |
在光标后粘贴内容。 |
P |
在光标前粘贴内容。 |
撤销与重做
命令 |
作用 |
u |
撤销上一次操作。 |
Ctrl + r |
重做撤销的操作。 |
查找
命令 |
作用 |
/关键词 |
向下查找 关键词 。 |
?关键词 |
向上查找 关键词 。 |
n |
查找下一个匹配项。 |
N |
查找上一个匹配项。 |
替换
命令 |
作用 |
:s/旧文本/新文本 |
替换当前行第一个匹配的文本。 |
:s/旧文本/新文本/g |
替换当前行所有匹配的文本。 |
:%s/旧文本/新文本/g |
替换整个文件中所有匹配的文本。 |
:%s/旧文本/新文本/gc |
替换整个文件中所有匹配的文本,替换前确认。 |
行操作
命令 |
作用 |
dd |
删除当前行(剪切)。 |
yy |
复制当前行。 |
p |
粘贴到当前行下方。 |
o |
在当前行下方插入一行并进入插入模式。 |
O |
在当前行上方插入一行并进入插入模式。 |
插入模式命令
插入模式用于编辑和输入文本内容。
命令 |
作用 |
i |
在光标前插入文本。 |
I |
在行首插入文本。 |
a |
在光标后插入文本。 |
A |
在行尾插入文本。 |
o |
在当前行下方新建一行并进入插入模式。 |
O |
在当前行上方新建一行并进入插入模式。 |
Esc |
退出插入模式,返回普通模式。 |
命令模式命令
命令模式用于保存文件、退出编辑器、打开新文件等操作。进入命令模式的方法是按 :
。
文件保存与退出
命令 |
作用 |
:w |
保存当前文件。 |
:w 文件名 |
另存为指定文件名。 |
:q |
退出编辑器。 |
:q! |
强制退出(不保存修改)。 |
:wq 或 :x |
保存并退出。 |
ZZ |
保存并退出(普通模式下)。 |
打开新文件
命令 |
作用 |
:e 文件名 |
打开指定文件。 |
:e! 文件名 |
放弃当前修改,强制打开指定文件。 |
:n |
切换到下一个文件(多文件模式)。 |
:prev 或 :N |
切换到上一个文件(多文件模式)。 |
显示文件信息
命令 |
作用 |
:f |
显示当前文件名、行号、总行数等信息。 |
:set number |
显示行号。 |
:set nonumber |
隐藏行号。 |
跳转到指定行
命令 |
作用 |
:数字 |
跳转到指定行(如 :10 跳转到第 10 行)。 |
gg |
跳转到文件开头。 |
G |
跳转到文件末尾。 |
搜索与替换
搜索
命令 |
作用 |
/关键词 |
向下查找 关键词 。 |
?关键词 |
向上查找 关键词 。 |
n |
查找下一个匹配项。 |
N |
查找上一个匹配项。 |
替换
命令 |
作用 |
:s/旧文本/新文本 |
替换当前行第一个匹配的文本。 |
:s/旧文本/新文本/g |
替换当前行所有匹配的文本。 |
:%s/旧文本/新文本/g |
替换整个文件中所有匹配的文本。 |
:%s/旧文本/新文本/gc |
替换整个文件中所有匹配的文本,并在替换前确认。 |
总结常用命令
操作 |
命令 |
保存文件 |
:w |
退出编辑器 |
:q |
强制退出 |
:q! |
保存并退出 |
:wq 或 :x |
删除当前行 |
dd |
复制当前行 |
yy |
粘贴 |
p |
查找文本 |
/关键词 |
替换文本 |
:%s/旧/新/gc |
显示行号 |
:set number |
跳转到指定行 |
:数字 或 数字G |
通过熟练掌握 vim
的基本命令和模式切换,可以高效地编辑和管理文本文件!