Vim速查表

4 分钟阅读·Matthieu

Vim命令快速参考,按服务器管理工作分类整理。收藏本页。

模式

模式 进入方式 用途 返回普通模式
普通 Esc 导航,执行命令 已在此模式
插入 iaoIAO 输入文本 Esc
可视 v(字符)、V(行)、Ctrl+v(块) 选择文本 Esc
命令行 : 执行ex命令 EnterEsc

文件操作

命令 操作
:w 保存
:q 退出(有未保存更改时失败)
:wqZZ 保存并退出
:q! 不保存退出
:w !sudo tee % 保存只读文件(忘记用sudoedit时)
:e /文件/路径 打开文件
:saveas /路径 另存为新文件

导航

字符和行

按键 操作
h j k l 左、下、上、右
0 行首
$ 行尾
^ 第一个非空字符

单词

按键 操作
w / W 下一个单词 / WORD
b / B 上一个单词 / WORD
e 单词末尾

文件

按键 操作
gg 第一行
G 最后一行
42G:42 第42行
Ctrl+d / Ctrl+u 半页下 / 上
Ctrl+f / Ctrl+b 整页下 / 上
% 匹配的括号

搜索

按键 操作
/模式 向前搜索
?模式 向后搜索
n / N 下一个 / 上一个匹配
* 搜索光标下的单词(向前)
# 搜索光标下的单词(向后)

进入插入模式

按键 操作
i 在光标前
a 在光标后
I 行首
A 行尾
o 下方新建行
O 上方新建行
s 删除字符并插入
Scc 删除行并插入

编辑

命令 操作
x 删除字符
dd 删除行
dw 删除单词
d$D 删除到行尾
d0 删除到行首
cc 更改行
cw 更改单词
ci" 更改引号内的内容
ci( 更改括号内的内容
yy 复制行
yw 复制单词
p / P 在后 / 前粘贴
u 撤销
Ctrl+r 重做
. 重复上一次更改
>> / << 缩进 / 反缩进行
J 将当前行与下一行合并

计数和组合

Vim命令接受数字前缀。将操作符与动作组合进行精确编辑。

示例 操作
3dd 删除3行
5j 向下移动5行
d2w 删除接下来2个单词
4>> 缩进4行
y3w 复制3个单词
ct; 更改文本直到;
df" 删除到下一个"(含)

可视模式

命令 操作
v 开始字符选择
V 开始行选择
Ctrl+v 开始块选择
d 删除选中内容
y 复制选中内容
> / < 缩进 / 反缩进选中内容
:s/^/#/ 注释选中行(可视行模式下)
U / u 选中内容转大写 / 小写

搜索和替换

命令 操作
:s/旧/新/ 替换当前行第一个
:s/旧/新/g 替换当前行所有
:%s/旧/新/g 替换文件中所有
:%s/旧/新/gc 替换所有并逐个确认
:5,10s/旧/新/g 替换第5到10行所有

常用正则表达式模式

模式 匹配
^ / $ 行首 / 行尾
. 任意字符
\d 数字
\s 空白字符
.* 任意字符(贪婪)
\v "very magic"模式(减少转义)

服务器示例

:%s/listen 80;/listen 443 ssl;/g
:%s/nginx:1.24/nginx:1.27/g
:%s/192\.168\.1\.1/10.0.0.1/g

缓冲区

命令 操作
:e 文件 在缓冲区中打开
:bn / :bp 下一个 / 上一个缓冲区
:ls 列出缓冲区
:b2 切换到第2个缓冲区
:bd 关闭缓冲区

分屏

命令 操作
:sp 文件 水平分屏
:vs 文件 垂直分屏
Ctrl+w h/j/k/l 在分屏间移动
Ctrl+w = 分屏大小相等
Ctrl+w q 关闭分屏
Ctrl+w _ 最大化当前分屏高度
Ctrl+w | 最大化当前分屏宽度

标签页

命令 操作
:tabnew 文件 在新标签页中打开
gt / gT 下一个 / 上一个标签页
:tabclose 关闭标签页

.vimrc基本配置

面向服务器的最小配置:

set nocompatible
set encoding=utf-8
set number relativenumber
syntax on
set expandtab tabstop=2 shiftwidth=2 softtabstop=2
set incsearch hlsearch ignorecase smartcase
set showmatch laststatus=2 showmode
set mouse=a
set pastetoggle=<F2>
set noswapfile
set cursorline
set list listchars=tab:>>·,trail:·
filetype plugin indent on

服务器工作流快捷操作

任务 命令
安全编辑root文件 sudoedit /etc/nginx/nginx.conf
粘贴时避免阶梯缩进 F2i,粘贴,F2
跳到错误行 vim +42 file.yml
将制表符转为空格(YAML修复) :%s/\t/ /g
注释多行 V,选择,:s/^/#/
取消注释多行 V,选择,:s/^#//
编辑后验证Nginx配置 :!sudo nginx -t
不退出Vim重新加载 :!sudo systemctl reload nginx

故障排除

问题 解决方法
打开Vim后无法输入 i(你在普通模式)
终端冻结(Ctrl+s Ctrl+q
粘贴时阶梯形缩进 切换粘贴模式:F2:set paste
文件只读 退出,用sudoedit重新打开
交换文件警告 如果没有其他会话在编辑,选择(D)elete

版权所有 2026 Virtua.Cloud。保留所有权利。 本内容为 Virtua.Cloud 团队原创作品。 未经书面许可,禁止复制、转载或再分发。

准备好亲自尝试了吗?

几秒内部署您自己的服务器。支持 Linux、Windows 或 FreeBSD。

查看 VPS 方案