主题
  • 默认模式
  • 浅蓝色模式
  • 淡绿色模式
  • 深夜模式

Linux Vi/Vim 编辑器

Vi/Vim 是 Unix/Linux 系统中最常用的文本编辑器之一,其中 Vim 作为 Vi 的增强版本,不仅完全兼容 Vi 的所有功能,还加入了语法高亮、代码补全等现代编辑器特性,是目前开发者最常用的文本编辑器。

✅ Vi/Vim 编辑器的操作模式分为三种:命令模式、输入模式和底线命令模式:

  • 命令模式(Command Mode):执行编辑命令,如光标移动、复制/粘贴/删除等操作。
  • 输入模式(Insert Mode):可直接编辑文本内容。
  • 底线命令模式(Command-line Mode):执行文件操作(:w/:q)、搜索(/)或替换(:s)等命令。

什么是 Vim?

Vim 是经典文本编辑器 vi 的增强版本,它不仅保留了 vi 的全部功能,还新增了代码补全、语法高亮、编译及错误跳转等辅助特性。

作为程序员广泛使用的开发工具,Vim 在效率上远超传统的 vi 编辑器——如果说 vi 是一个功能完备的老式文本处理器,那么 Vim 则是专为开发者打造的现代化高效编程利器。

Vi/Vim 键盘图:

Vi/Vim 键盘图


Vi/Vim 的使用

✅ Vi/Vim 编辑器的操作模式分为三种:命令模式、输入模式和底行模式

1. 命令模式

当您启动 Vim 时,默认进入的是命令模式(此时按键会触发命令,而非输入文字)。

此状态下敲击键盘动作会被 Vim 识别为命令,而非输入字符,比如我们此时按下 i,并不会输入一个字符,i 被当作了一个命令。

✅ 下面是普通模式常用的几个命令:

  • i -- 切换到输入模式,在光标当前位置开始输入文本。
  • x -- 删除当前光标所在处的字符。
  • : -- 切换到底线命令模式,以在最底一行输入命令。
  • a -- 进入插入模式,在光标下一个位置开始输入文本。
  • o:在当前行的下方插入一个新行,并进入插入模式。
  • O -- 在当前行的上方插入一个新行,并进入插入模式。
  • dd -- 剪切当前行。
  • yy -- 复制当前行。
  • p(小写) -- 粘贴剪贴板内容到光标下方。
  • P(大写)-- 粘贴剪贴板内容到光标上方。
  • u -- 撤销上一次操作。
  • Ctrl + r -- 重做上一次撤销的操作。
  • :w -- 保存文件。
  • :q -- 退出 Vim 编辑器。
  • :q! -- 强制退出Vim 编辑器,不保存修改。

要使用 Vim 编辑文本,只需启动程序后(默认进入命令模式),按下i键即可切换到输入模式开始编辑。

命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。

2. 输入模式

在命令模式下按下i就进入了输入模式,使用 Esc 键可以返回到普通模式。

✅ 在输入模式中,可以使用以下按键:

  • 字符按键及 Shift 组合:输入字符。
  • ENTER 回车键:换行。
  • BACK SPACE 退格键:删除光标前一个字符。
  • DEL 删除键:删除光标后一个字符。
  • 方向键:在文本中移动光标。
  • HOME/END:移动光标到行首/行尾。
  • Page Up/Page Down:上/下翻页。
  • Insert 切换光标为输入/替换模式:光标将变成竖线/下划线。
  • ESC 退出输入模式:切换到命令模式。

3. 底线命令模式

在命令模式下,只需按下英文冒号(:)键即可切换到底线命令模式,此时光标会自动跳转到编辑器底部,等待输入各种文件操作或编辑器控制命令。底线命令模式可以输入单个或多个字符的命令。

✅ 在底线命令模式下,Vim 提供了丰富的操作指令:

  • :w:保存文件。
  • :q:退出 Vim 编辑器。
  • :wq:保存文件并退出 Vim 编辑器。
  • :q!:强制退出 Vim 编辑器,不保存修改。

✅ Vi/Vim 命令模式、输入模式、底线命令模式三中模式关系图:

Vi/Vim 工作模式


Vi/Vim 使用实例

1. 打开终端,执行以下命令创建并编辑文件:

vim kaicz.txt

2. 按i键进入输入模式,直接输入以下内容:

Hello, this is kaicz.txt!
Created by Vim editor.
Today's date is 2025-08-19.

3. 按ESC键键退出输入模式,输入:wq保存并退出(包括冒号)。

4. 使用cat查看文件内容:

cat kaicz.txt

5. 预期输出结果:

Hello, this is kaicz.txt!
Created by Vim editor.
Today's date is 2025-08-19.

Vi/Vim 按键说明

除了上面示例中提到的 i(插入模式)、Esc(返回普通模式)和 :wq(保存并退出)这些基本操作外,Vim 实际上还提供了大量功能丰富的快捷键和命令。这些按键组合涵盖了文本编辑、光标移动、窗口操作等多个方面,能够显著提升编辑效率。

1. 模式切换:

按键 功能
i 进入插入模式(光标前插入)
a 进入插入模式(光标后插入)
I 进入插入模式(行首插入)
A 进入插入模式(行尾插入)
o 在当前行下方新建一行并进入插入模式
O 在当前行上方新建一行并进入插入模式
Esc/Ctrl+[ 返回普通模式
v 进入可视模式(字符选择)
V 进入行可视模式(整行选择)
Ctrl+v 进入块可视模式(矩形选择)
: 进入命令行模式

2. 光标移动:

按键 功能
h/ 左移
j/ 左移
k/ 上移
l/ 右移
w 跳到下一个单词开头
b 跳到上一个单词开头
e 跳到当前单词末尾
0/^ 跳到行首(0 是绝对行首,^ 是第一个非空白字符)
$ 跳到行尾
gg 跳到文件第一行
G 跳到文件最后一行
nG/:n 跳到第 n 行(如5G跳到第 5 行)
Ctrl+o 返回上一次光标位置
Ctrl+i 前进到下一次光标位置

3. 文本编辑部分:

按键 功能
x 删除当前字符
X 删除前一个字符
dw 删除当前单词(从光标到单词末尾)
dd 删除当前行
D/d$ 删除从光标到行尾
d0/d^ 删除从光标到行首
dnG 删除从当前行到第n行(如d5G删除到第5行)
dgg 删除从当前行到文件开头
dG 删除从当前行到文件末尾
yy 复制当前行
yw 复制当前单词
y$ 复制从光标到行尾
p 粘贴到光标后
P 粘贴到光标前
"*y 复制到系统剪贴板(需支持+clipboard
"*p 粘贴系统剪贴板内容
u 撤销上一次操作
Ctrl+r 重做撤销的操作
U 恢复当前行(撤销对当前行的所有修改)

4. 窗口分屏部分:

按键 功能
:sp/:split 水平分屏
:vsp/:vsplit 垂直分屏
Ctrl+w+h/j/k/l 切换分屏方向
Ctrl+w+w 循环切换分屏
Ctrl+w++ 增加分屏高度
Ctrl+w+- 减少分屏高度
Ctrl+w+= 均衡分屏大小
Ctrl+w+q/:q 关闭当前分屏
Ctrl+w+o 只保留当前分屏

5. 文件操作部分:

命令 功能
:e filename 打开文件
:w 保存文件
:w filename 另存为
:q 退出Vim
:q! 强制退出(不保存)
:wq/:x/ZZ 保存并退出
:wqa 保存所有文件并退出
:bn/:bp 切换缓冲区(下一个/上一个文件)
:bd 关闭当前缓冲区

6. 其他实用命令部分

按键/命令 功能
. 重复上一次操作
>> 向右缩进
<< 向左缩进
== 自动缩进当前行
Ctrl+n/Ctrl+p 自动补全(向下/向上)
:set number 显示行号
:set nonumber 隐藏行号
:set paste 进入粘贴模式(避免自动缩进)
:set nopaste 退出粘贴模式
:help command 查看命令帮助


评论区 0
发表评论