vi 和 vim 的三种模式

使用 Vim 编辑文件时,存在 3 种工作模式,分别是命令模式、输入模式和编辑模式,这三种工作模式可随意切换,如图所示。

一、命令模式

​ 使用 Vim 编辑文件时,默认处于命令模式。此模式下,可使用方向键(上、下、左、右键)或 k、j、h、i 移动光标的位置,还可以对文件内容进行复制、粘贴、替换、删除等操作。

命令 含义
dd 删除光标当前行
dnd 删除n行
u 撤销上一步
yy 复制光标当前行
p 粘贴
x,X 删除一个字母
dw 删除一个词
yw 复制一个词
shift+^ 移动到行头
shift+$ 移动到行尾
shift+g 移动到页尾
数字1+shift+g 移动到页头
数字N+shift+g 移动到目标

二、输入模式

在输入模式下,Vim 可以对文件执行写操作,类似于在 Windows 系统的文档中输入内容。

使 Vim 进行输入模式的方式是在命令模式状态下输入 i、I、a、A、o、O 等插入命令(各指令的具体功能如表 3 所示),当编辑文件完成后按 Esc 键即可返回命令模式。

命令 含义
i,I 当前光标前
a,A 当前光标后
o,O 当前光标行的下一行
s , S s: 删除当前字符并进入编辑 S: 删除整行并进入编辑
R 进入替换模式

三、编辑模式

编辑模式用于对文件中的指定内容执行保存、查找或替换等操作。

使 Vim 切换到编辑模式的方法是在命令模式状态下按“:”键,此时 Vim 窗口的左下方出现一个“:”符号,这是就可以输入相关指令进行操作了。

指令执行后 Vim 会自动返回命令模式。如想直接返回命令模式,按 Esc 即可。

命令 含义
:w 保存
:q 退出
:! 强制执行
:%s/old字符/new字符 批量替换
/ 要查找的词 n 查找下一个,N 往上查找
N 查找下一个,n 往上查找
:set nu / :set nonu 显示行号 /关闭行号