← 返回画廊

Vim 常用操作速查卡

贴手边的 Vim 快速参考。按功能分组,支持复制速记。


1. 模式切换

按键作用
i在光标前插入(进入插入模式)
a在光标后追加(进入插入模式)
o在下一行新建行并插入(进入插入模式)
I在行首(第一个非空字符)插入
A在行末追加
O在上一行新建行并插入
Esc回到普通模式
v进入字符可视模式(逐字选择)
V进入行可视模式(逐行选择)
Ctrl-v进入块可视模式(矩形选择)

2. 移动

基础移动

按键作用
h
j
k
l
w跳到下一个单词开头
b跳到上一个单词开头
e跳到当前单词末尾
0跳到行首
^跳到行首(第一个非空字符)
$跳到行末

跳页

按键作用
gg跳到文件开头
G跳到文件末尾
Ctrl-u向上翻半页
Ctrl-d向下翻半页
Ctrl-f向下翻整页
Ctrl-b向上翻整页

块级移动

按键作用
{跳到上一个空行
}跳到下一个空行
%在配对括号间跳转(如 ()[]{} 间)

字符查找

按键作用
f<char>跳到当前行下一个 <char>
F<char>跳到当前行上一个 <char>
t<char>跳到当前行下一个 <char> 前一个位置
T<char>跳到当前行上一个 <char> 后一个位置
;重复上一个 f/F/t/T 命令
,反向重复上一个 f/F/t/T 命令

3. 编辑

删除

按键作用
x删除光标所在字符
X删除光标前字符(backspace)
dd删除整行
dw删除从光标到下一个单词开头
db删除从光标到上一个单词开头
d$删除从光标到行末
d0删除从行首到光标
d<motion>删除到指定动作(如 djd5w

复制与粘贴

按键作用
yy复制整行
yw复制从光标到下一个单词开头
y$复制从光标到行末
y<motion>复制到指定动作
p在光标后粘贴
P在光标前粘贴

修改(删除 + 插入)

按键作用
cc删除整行并进入插入模式
cw删除单词并进入插入模式
c$删除到行末并进入插入模式
c<motion>修改到指定动作
r<char><char> 替换光标所在字符
R进入替换模式(覆盖输入)

撤销与重做

按键作用
u撤销最后一步操作
Ctrl-r重做最后撤销的操作
.重复最后一次操作

4. 查找与替换

查找

按键作用
/pattern向下查找 pattern(回车确认)
?pattern向上查找 pattern
n跳到下一个匹配
N跳到上一个匹配
*查找光标所在单词(向下)
#查找光标所在单词(向上)

替换

命令作用
:s/old/new/替换当前行第一个 oldnew
:s/old/new/g替换当前行所有 oldnew
:n,m s/old/new/g替换第 n 到 m 行的所有 oldnew
:%s/old/new/g替换整个文件的所有 oldnew
:%s/old/new/gc替换整个文件,每次都询问(c = confirm)

5. 多文件 / 窗口 / 缓冲

文件操作

命令作用
:e <file>打开或编辑文件
:w保存当前文件
:w <file>另存为 <file>
:q关闭当前窗口(无修改时)
:q!强制关闭(丢弃修改)
:wq:x保存并关闭
:e!放弃修改,重新加载文件

窗口分割

命令作用
:sp水平分割窗口(打开相同文件)
:vsp竖直分割窗口(打开相同文件)
:sp <file>水平分割窗口并打开 <file>
:vsp <file>竖直分割窗口并打开 <file>

窗口切换(Ctrl-w 系列)

按键作用
Ctrl-w w切换到下一个窗口
Ctrl-w h/j/k/l切换到左/下/上/右窗口
Ctrl-w c关闭当前窗口
Ctrl-w o仅保留当前窗口(关闭其他)
Ctrl-w =平均分配窗口大小
Ctrl-w >/<增加/减少窗口宽度
Ctrl-w +/-增加/减少窗口高度

缓冲管理

命令作用
:bn切换到下一个缓冲
:bp切换到上一个缓冲
:b<n>切换到缓冲 n(:ls 查看缓冲列表)
:ls:buffers列出所有缓冲
:bd删除当前缓冲

6. 组合的威力(必读)

Vim 的精妙在于操作符 + 动作的组合。任何删除、复制、修改命令都可以与动作组合。

核心模式

<operator> <motion>

操作符d(删除)、y(复制)、c(修改)、v(可视化选择) 动作w(单词)、j(下一行)、}(段落)、f<char>(到字符)等

常用组合示例

按键等效于作用
di(删除括号内内容(删除 inner (...)
ci"修改双引号内内容
da{删除花括号及其内容(delete around {}
yi]复制方括号内内容
dt,删除到逗号前(delete till ,
3dd删除 3 行
5j向下移 5 行
2dw删除 2 个单词
y2e复制 2 个单词(到词尾)

文本对象(内部动作)

对象作用
iwinner word(单词内部)
awa word(包括单词和空格)
i" / i' / i`引号内
a" / a' / a`引号及其内容
i(ib小括号内
i[方括号内
i{iB花括号内
ip段落内
it标签内(HTML/XML)

示例


7. 常用配置片段(.vimrc 起步)

" 基础设置
set number              " 显示行号
set relativenumber      " 相对行号
set hlsearch            " 高亮搜索结果
set ignorecase          " 搜索忽略大小写
set smartcase           " 智能大小写(有大写字母时区分)
set expandtab           " Tab 转空格
set tabstop=4           " Tab 显示为 4 个空格
set softtabstop=4       " 按 Tab 插入 4 个空格
set shiftwidth=4        " 缩进 4 个空格
set autoindent          " 自动缩进
set mouse=a             " 启用鼠标
set clipboard=unnamed   " 复制到系统剪贴板

" 快捷键映射示例
let mapleader = ","     " 设置 Leader 键为逗号
nnoremap <leader>w :w<CR>      " ,w 保存
nnoremap <leader>q :q<CR>      " ,q 退出
nnoremap <leader>/ :nohlsearch<CR>  " ,/ 关闭搜索高亮

" 括号自动补全(基础版)
inoremap ( ()<Left>
inoremap [ []<Left>
inoremap { {}<Left>

8. 速记提示

记住这 3 个核心概念

  1. 动作可重复3dd = 删 3 行,5j = 下 5 行
  2. 操作符 + 动作:不用死记 dwcw,理解 d + w 就能推广到 d$df,
  3. 可视模式验证:不确定某个范围时,先 v 选择看看,再按 d/y/c

进阶提示


最后:Vim 学习曲线陡峭,但回报远大。不要在 :wq 上耗时,集中力量掌握动作组合——那是 Vim 的核心威力。