vi/vim 编辑器

大多数 Linux 发行版自带 vi,vim(Vi Improved)是其增强版本。

三种工作模式

模式说明
命令模式(Command)默认进入的模式。所有按键被解释为命令,不能编辑文本。按 Esc 从其他模式返回。
输入模式(Insert)可自由编辑文本。从命令模式按特定键进入(见下表)。
底线命令模式(Last-line)从命令模式按 : 进入,光标跳至底部。用于保存、退出、搜索替换等操作。

三者关系:命令模式是枢纽,输入模式和底线命令模式均从命令模式进入,按 Esc 回到命令模式。


进入输入模式的方式

按键说明
i在光标所在字符开始插入
a在光标所在字符开始插入
o在当前行下方另起一行插入
I跳至当前行行首开始插入
A跳至当前行行尾开始插入
O在当前行上方另起一行插入

命令模式操作

光标移动

按键说明
h / j / k / l左 / 下 / 上 / 右(方向键也通用)
w / b跳到下一个单词开头 / 上一个单词开头
e / ge跳到当前单词结尾 / 上一个单词结尾
0 / ^ / $跳到行首 / 行首第一个非空字符 / 行尾
gg / G跳到文件首行 / 末行
:n跳到第 n 行(底线命令模式)
Ctrl + f / Ctrl + b向下翻页(forward)/ 向上翻页(backward)
Ctrl + d / Ctrl + u向下翻半页 / 向上翻半页

删除

按键说明
x删除光标处的单个字符
dw删除从光标位置到单词结尾
d$删除从光标位置到行尾
d0删除从行首到光标位置
dd删除整行
dG删除从当前行到文件末尾
ggdG删除全文

复制与粘贴

按键说明
yw复制光标处单词
yy复制整行
y$复制从光标到行尾
yG复制从当前行到文件末尾
p / P在光标后粘贴 / 在光标前粘贴(整行粘贴时 p 在下一行,P 在上一行)

撤销与重做

按键说明
u撤销上一步操作
Ctrl + r重做(撤销的逆操作)
U恢复当前行到初始状态(仅限当前行)

重复命令

按键说明
.重复上一次命令(如 dd 后按 . 重复执行删除整行)

其他常用命令

按键说明
>> / <<当前行右缩进 / 左缩进
==自动缩进当前行(常用于格式化)
~切换光标处字符的大小写

底线命令模式操作

: 进入,输入以下命令后按回车执行:

命令说明
:w保存文件
:q退出(若有未保存修改则提示)
:wq:x保存并退出
:q!强制退出,不保存修改
:e!放弃所有修改,重新加载文件
:set nu / :set nonu显示行号 / 隐藏行号
:n跳转到第 n 行
:/关键词向下搜索关键词(按 n 继续,N 反向)
:?关键词向上搜索关键词
:s/旧/新/g当前行全部替换旧为新
:%s/旧/新/g全文全部替换旧为新
:r 文件名将另一个文件的内容插入到光标下方
:!命令执行 Shell 命令(如 :!ls

启动与退出

  • 启动:vim 文件路径(文件不存在则自动创建)。
  • 退出:按 Esc 确保处于命令模式,然后执行 :wq 保存退出,或 :q! 强制退出。

Neovim 与 LazyVim

  • Neovim(nvim):vim 的现代分支,操作与 vim 完全一致,额外内置 LSP、异步插件架构、终端集成等特性。
  • LazyVim:Neovim 的开箱即用配置方案,基于 Lua 的懒加载框架,预置 IDE 级功能。安装后无需手动配置即可使用。
  • 一般建议直接上Neovim