Vim 常用命令备忘

Vim 日常开发常用命令速查

Vim 常用命令备忘

Vim 日常开发中最常用的命令速查,包括模式切换、移动、编辑、搜索、窗口管理等。

1. 模式切换

命令 说明
i 在光标前插入
I 在行首插入
a 在光标后插入
A 在行尾插入
o 在下方新建一行并插入
O 在上方新建一行并插入
v 进入可视模式(字符选择)
V 进入可视模式(行选择)
Ctrl-V 进入可视模式(块选择)
Esc / Ctrl-[ 退出当前模式
: 进入命令模式

2. 光标移动

2.1 基本移动

命令 说明
h / j / k / l 左 / 下 / 上 / 右
w 移动到下一个单词开头
W 移动到下一个空格分隔的单词
b 移动到上一个单词开头
B 移动到上一个空格分隔的单词
e 移动到当前单词末尾
E 移动到空格分隔的单词末尾

2.2 行内移动

命令 说明
0 移动到行首
^ 移动到行首第一个非空字符
$ 移动到行尾
f{char} 向后查找字符并跳转
F{char} 向前查找字符并跳转
t{char} 向后查找字符并停在其前
T{char} 向前查找字符并停在其后
; 重复上次 f/F/t/T
, 反向重复上次 f/F/t/T

2.3 文件内移动

命令 说明
gg 移动到文件开头
G 移动到文件末尾
{n}G 跳转到第 n 行
{ 跳转到上一段落
} 跳转到下一段落
% 跳转到匹配的括号
Ctrl-O 跳转到上一个位置
Ctrl-I 跳转到下一个位置
gd 跳转到局部定义
gD 跳转到全局定义

3. 编辑操作

3.1 删除

命令 说明
x 删除当前字符
X 删除前一个字符
dw 删除一个单词
d$ / D 删除到行尾
d0 删除到行首
dd 删除整行
{n}dd 删除 n 行
d{motion} 删除到 motion 指定位置
dG 删除到文件末尾
dgg 删除到文件开头

3.2 复制与粘贴

命令 说明
yy 复制整行
{n}yy 复制 n 行
yw 复制一个单词
y$ 复制到行尾
y{motion} 复制到 motion 指定位置
p 在光标后粘贴
P 在光标前粘贴
"{reg}p 粘贴指定寄存器内容

3.3 修改

命令 说明
r{char} 替换当前字符
R 进入替换模式
cw 修改单词
c$ / C 修改到行尾
cc 修改整行
s 删除字符并进入插入模式
S 删除整行并进入插入模式

3.4 其他编辑

命令 说明
u 撤销
Ctrl-R 重做
. 重复上次操作
J 合并当前行和下一行
>> 增加缩进
<< 减少缩进
== 自动缩进
gg=G 全文自动缩进
gu{motion} 转为小写
gU{motion} 转为大写

4. 搜索与替换

4.1 搜索

命令 说明
/pattern 向下搜索
?pattern 向上搜索
n 下一个匹配
N 上一个匹配
* 搜索光标下的单词(向下)
# 搜索光标下的单词(向上)
:noh 取消搜索高亮

4.2 替换

1
2
3
4
5
6
7
" 基本格式
:s/old/new/      " 替换当前行第一个
:s/old/new/g     " 替换当前行所有
:s/old/new/gc    " 替换当前行所有(确认)
:%s/old/new/g    " 全文替换
:%s/old/new/gc   " 全文替换(确认)
:n,m s/old/new/g " 第 n 到 m 行替换
标志 说明
g 替换所有匹配
c 每次替换前确认
i 忽略大小写
I 区分大小写

5. 可视模式

命令 说明
v 字符选择
V 行选择
Ctrl-V 块选择
o 移动光标到选择区域另一端
gv 重新选择上次选中的区域

6. 文件操作

命令 说明
:w 保存
:w file 另存为
:q 退出
:q! 强制退出(不保存)
:wq / :x / ZZ 保存并退出
:e file 打开文件
:e! 放弃修改重新加载
:r file 读入文件内容到当前位置
:saveas file 另存为并切换到新文件

7. 折叠

命令 说明
zf{motion} 创建折叠
zd 删除折叠
zo 打开折叠
zc 关闭折叠
za 切换折叠状态
zR 打开所有折叠
zM 关闭所有折叠
zE 删除所有折叠

8. 常用配置

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
" ~/.vimrc 基础配置
set number           " 显示行号
set relativenumber   " 相对行号
set tabstop=4        " Tab 宽度
set shiftwidth=4     " 缩进宽度
set expandtab        " Tab 转空格
set autoindent       " 自动缩进
set cursorline       " 高亮当前行
set wrap             " 自动换行
set showcmd          " 显示命令
set wildmenu         " 命令补全菜单
set hlsearch         " 搜索高亮
set incsearch        " 增量搜索
set ignorecase       " 搜索忽略大小写
set smartcase        " 智能大小写
set termguicolors    " 真彩色支持
syntax on            " 语法高亮

参考链接

Licensed under CC BY-NC-SA 4.0