江
江小南
V1
2022/07/11阅读:28主题:默认主题
vi/vim命令
vi/vim命令简介
vi(visual editor)是Linux和Unix系统上最基本的文本编辑器,类似于Windows系统下的notepad(记事本)编辑器。
Vim(Vi improved)是vi编辑器的加强版,比vi更容易使用,他可以用多种颜色的方式来显示一些特殊的信息。同时vi的命令几乎都可以在vim上使用。
四种模式
在日常的使用中,Linux并没有像Windows一样很方便的可视化界面,通常需要记很多的命令,复杂难记,今天我以不同模式的方式跟大家梳理哪些命令在哪种模式下使用,方便记忆。

vi/vim共分为四种模式,命令行模式、编辑模式、末行模式、可视化模式。
一、命令行模式
使用vi/vim编辑器时,默认处于命令行模式。
在该模式下可以移动光标位置,翻屏,可以通过快捷键对文件内容进行复制-粘贴;剪切-粘贴/删除;撤销与恢复等操作。

表格中所说的当前行均表示光标所在的行。
-
移动光标/翻屏
按键 | 说明 |
---|---|
gg | 移动光标到首行 |
G | 移动光标到末行 |
n<Enter> | 光标向下移动n行 |
行号 + G | 移动光标到指定行,例如5G |
ctrl + b(before) | 向上翻屏 |
ctrl + f(after) | 向下翻屏 |
ctrl + u(up) | 向上翻半屏 |
ctrl + d(down) | 向下翻半屏 |
-
复制/剪切/删除-粘贴等
按键 | 说明 |
---|---|
yy | 复制当前行 |
n + yy | 当前行开始复制n行,如5yy |
yG | 全部复制(光标在首行时操作) |
dd | 剪切/删除当前行(下一行上移) |
n + dd | 从当前行剪切/删除n行(下一行上移) |
D | 剪切/删除当前行(下一行不上移) |
p(小写) | 在当前行下方粘贴 |
P(大写) | 在当前行上方粘贴 |
说明:从严格意义来讲,删除命令就是剪切,如果不粘贴就是删除,粘贴了就是剪切。
-
撤销/恢复
按键 | 说明 |
---|---|
u(undo) | 撤销 |
ctrl + r(redo) | 恢复之前的撤销操作 |
P(大写) | 在当前行上方粘贴 |
P(大写) | 在当前行上方粘贴 |
二、编辑模式
在命令行模式下,我们通过i,a,o,O字母按键即可进入到编辑模式。

按键 | 说明 |
---|---|
a | 在光标之后插入 |
i | 在光标之前插入 |
o | 在当前行的下一行插入 |
O | 在当前行的上一行插入 |
编辑完文本,按下ESC即可进入到命令行模式。
三、末行模式
在命令行模式下,按下:
或者/
进入到末行模式。

在末行模式下,我们可以文件保存、退出、查找与替换、显示行号等等。
-
保存与退出
命令 | 说明 |
---|---|
:w | 保存 |
:q | 退出(一般先保存后退出) |
:wq | 保存并退出 |
:q! | 未保存强制退出 |
-
搜索
命令 | 说明 |
---|---|
/关键字<Enter> | 搜索(n:下一个/N:上一个) |
-
查找与替换
# 当前行的第一个匹配有效
:s/要替换的关键词/替换后的关键词 + <Enter>
# 当前行的所有匹配有效
:s/要替换的关键词/替换后的关键词/g + <Enter>
# 整个文档的每行第一个匹配有效
:%s/要替换的关键词/替换后的关键词 + <Enter>
# 整个文档的所有匹配有效
:%s/要替换的关键词/替换后的关键词/g + <Enter>
-
行号
命令 | 说明 |
---|---|
:set nu | 显示行号 |
:set nonu | 取消行号 |
末行模式执行完毕,按下ESC键进入到命令行模式。
四、可视化模式
在命令行模式,有三种方式进入可视化模式,v、V或者Ctrl+v,用法各不同。



这三种进入方式,可以按照需求选择。
-
复制
在可视化模式(v方式进入)。
-
通过键盘的↑ ↓ ← →键来控制要选择的文本区域 -
按下y(d)键进行复制(剪切) -
按下p(P)键进行粘贴。
-
多行注释
在可视化模式(Ctrl+v方式进入)。
-
在行首使用上下键选择需要注释的多行 -
按下键盘(大写)“I”键,进入插入模式 -
输入#号注释符 -
输入完成后,连续按两次Esc即可完成添加多行注释
-
去除多行注释
在可视化模式(Ctrl+v方式进入)。
-
使用键盘上的方向键的上下选中需要移除的#号注释 -
直接按Delete键即可完成删除注释的操作
作者介绍
江
江小南
V1