当前位置:首页>Linux>Linux命令速查 -- Vim 文本编辑器速查表

Linux命令速查 -- Vim 文本编辑器速查表

  • 2026-10-11 06:12:43
Linux命令速查 -- Vim 文本编辑器速查表

模式

与大多数编辑器不同,Vim 不会让你直接输入文本。它启动时处于普通模式(Normal mode),此时按键是命令而非文本输入。你需要根据操作目的在不同模式之间切换。
vim textfile.txt
按键说明
i进入插入模式:自由输入文本
v进入可视模式:选择字符
V进入可视行模式:选择整行
Ctrl+v进入可视块模式:选择矩形区域
:进入命令行模式:运行命令
R进入替换模式:覆盖已有文本
Esc返回普通模式
最佳学习方式是运行内置的交互式教程:在终端中执行vimtutor,大约需要 30 分钟。

文件管理

所有以:开头的命令都在命令行模式下输入。按Enter执行。
按键说明
:e从磁盘重新加载当前文件
:e {file}打开文件进行编辑
:w保存当前文件
:w {file}另存为其他文件
:q退出(如有未保存更改则失败)
:q!退出并丢弃未保存的更改
:wq保存并退出
:x保存并退出(仅在文件被修改时才写入)

导航

以下操作在普通模式下有效。Vim 使用h j k l代替方向键,但方向键同样可用。
按键说明
h向左移动
j向下移动
k向上移动
l向右移动
w跳到下一个单词开头
W跳到下一个 WORD 开头(以空白分隔)
e跳到当前单词末尾
b跳到上一个单词开头
0跳到行首
^跳到行首第一个非空白字符
$跳到行尾
{ / }跳到上/下一段落
%跳到匹配的括号
Ctrl+d向下滚动半页
Ctrl+u向上滚动半页
gg跳到文件第一行
G跳到文件最后一行
{number}G跳到指定行号
gk / gj向上/向下移动一个显示行(用于自动换行)

插入

以下命令从普通模式进入插入模式,但光标位置不同。完成后按Esc返回普通模式。
按键说明
i在光标前插入
I在行首插入
a在光标后追加
A在行尾追加
o在当前行下方新开一行并插入
O在当前行上方新开一行并插入
R替换模式:覆盖已有字符
:r {file}在光标下方插入文件内容

编辑

Vim 将操作符(如d删除、y复制、c修改)与动作(如w单词、$行尾)组合使用:dw删除一个单词,c$重写该行剩余部分。
按键说明
u撤销上一次更改
Ctrl+r重做上一次撤销的更改
yy复制(yank)当前行
y{motion}复制动作覆盖的文本(如 yw 复制一个单词)
p在光标后粘贴
P在光标前粘贴
x删除光标下的字符
r{char}替换光标下的字符
dd删除当前行
d{motion}删除动作覆盖的文本(如 dw 删除一个单词)
c{motion}删除文本并进入插入模式
J将下一行合并到当前行
>> / <<缩进 / 取消缩进当前行
.重复上一次更改
删除和复制的文本都进入同一个寄存器,因此dd然后p可以移动一行。

计数与文本对象

在任何命令前加数字即可重复执行:3dd删除三行,2w跳两个单词。文本对象描述光标周围的结构:i表示内部,a包含定界符。
按键说明
ciw修改光标下的单词
diw删除光标下的单词
di"删除引号内的所有内容
ci(修改括号内的所有内容
da(删除括号及其内容
yip复制当前段落

搜索与替换

在普通模式下按/或?开始搜索。替换命令使用:命令行。
按键说明
/pattern向前搜索模式
?pattern向后搜索模式
n跳到下一个匹配
N跳到上一个匹配
*向前搜索光标下的单词
#向后搜索光标下的单词
:s/foo/bar/替换当前行第一个 foo 为 bar
:s/foo/bar/g替换当前行所有 foo 为 bar
:%s/foo/bar/g替换整个文件中所有 foo 为 bar
:%s/foo/bar/gc替换整个文件,每次替换前确认
:noh清除搜索高亮

多窗口

Vim 可以分割屏幕同时显示多个文件。窗口命令以Ctrl+w开头。
按键说明
:split {file}水平分割并打开文件
:vsplit {file}垂直分割并打开文件
:sview {file}水平分割并以只读方式打开文件
Ctrl+w w切换到下一个窗口
Ctrl+w h j k l切换到该方向的窗口
Ctrl+w _最大化当前窗口高度
Ctrl+w =使所有窗口等大小
:hide关闭当前窗口
:only关闭除当前窗口外的所有窗口
每个打开的文件都存在于一个缓冲区中,无论是否可见。
按键说明
:ls列出所有打开的缓冲区
:b {number}按编号切换到指定缓冲区
:bn / :bp切换到下一个/上一个缓冲区
:bd关闭(删除)当前缓冲区

最新文章

随机文章