vi快捷键大全
Vim 是一款功能强大的文本编辑器,熟练掌握其快捷键可以极大提高编辑效率。以下是 Vim 常用快捷键的分类整理,涵盖基本操作、移动、编辑、查找替换、分屏等核心功能:
一、模式切换
Vim 有多种模式,最常用的是 Normal 模式(命令模式)、Insert 模式(编辑模式)和 Visual 模式(可视化选择)。
- 进入 Insert 模式:
i:在当前光标前插入a:在当前光标后插入I:在当前行首插入A:在当前行尾插入o:在当前行下方新开一行并进入插入模式O:在当前行上方新开一行并进入插入模式
- 返回 Normal 模式:
Esc或Ctrl+[
- Visual 模式:
v:字符选择(按字符逐个选择)V:行选择(整行选择)Ctrl+v:块选择(矩形区域选择)
- 命令行模式:
::进入命令行模式(如保存、退出等)
二、光标移动
在 Normal 模式下,使用以下快捷键移动光标:
- 基本移动:
h:左移j:下移k:上移l:右移- 等价于方向键,但效率更高
- 单词间移动:
w:移动到下一个单词的词首b:移动到上一个单词的词首e:移动到当前/下一个单词的词尾ge:移动到上一个单词的词尾
- 行内移动:
0:移动到行首(第一个字符位置)^:移动到行首的第一个非空白字符$:移动到行尾f<char>:在当前行中查找下一个指定字符(如fa查找下一个a)F<char>:在当前行中查找上一个指定字符t<char>:移动到当前行中下一个指定字符的前一个位置T<char>:移动到当前行中上一个指定字符的后一个位置;:重复上一次的f、F、t或T查找,:反向重复上一次的f、F、t或T查找
- 行间移动:
gg:移动到文件开头G:移动到文件结尾nG或:n:移动到第 n 行(如10G移动到第 10 行)%:跳转到匹配的括号(如(、)、[、]、{、})
- 屏幕内移动:
H:移动到屏幕顶部M:移动到屏幕中间L:移动到屏幕底部Ctrl+u:向上滚动半屏Ctrl+d:向下滚动半屏Ctrl+f:向前滚动一屏(下一页)Ctrl+b:向后滚动一屏(上一页)
三、文本编辑
- 删除/剪切:
x:删除当前光标所在字符(相当于dl)X:删除当前光标前的字符(相当于dh)dd:删除当前行(并放入剪贴板,可用于粘贴)ndd:删除从当前行开始的 n 行(如3dd删除 3 行)dw:删除从当前光标位置到下一个单词词首的内容de:删除从当前光标位置到当前/下一个单词词尾的内容d$:删除从当前光标位置到行尾的内容d0或d^:删除从当前光标位置到行首的内容d%:删除从当前光标位置到匹配括号之间的内容dG:删除从当前行到文件结尾的内容dgg:删除从当前行到文件开头的内容
- 复制/粘贴:
yy或Y:复制当前行(Y等价于y$)nyy:复制从当前行开始的 n 行(如3yy复制 3 行)yw:复制从当前光标位置到下一个单词词首的内容ye:复制从当前光标位置到当前/下一个单词词尾的内容y$:复制从当前光标位置到行尾的内容y0或y^:复制从当前光标位置到行首的内容p:在当前光标后粘贴剪贴板内容P:在当前光标前粘贴剪贴板内容
- 替换:
r<char>:替换当前光标所在字符为指定字符(如ra将当前字符替换为a)R:进入替换模式,持续替换后续字符,按Esc退出cw:删除从当前光标位置到下一个单词词首的内容,并进入插入模式ciw:删除当前单词(不包括周围空格),并进入插入模式c$:删除从当前光标位置到行尾的内容,并进入插入模式
- 撤销/重做:
u:撤销上一步操作Ctrl+r:重做(恢复撤销的操作)
- 合并行:
J:将当前行与下一行合并为一行,并用空格分隔
- 大小写转换:
~:切换当前光标所在字符的大小写guw:将当前单词转换为小写gUw:将当前单词转换为大写guu:将当前行转换为小写gUU:将当前行转换为大写
四、查找与替换
- 查找:
/pattern:向前查找指定模式(如/hello查找hello)?pattern:向后查找指定模式n:重复上一次查找(方向相同)N:反向重复上一次查找(方向相反)*:查找当前光标所在的单词(向前)#:查找当前光标所在的单词(向后)
- 替换:
:%s/old/new/g:全局替换(将所有old替换为new):%s/old/new/gc:全局替换,每次替换前询问确认:s/old/new/:只替换当前行的第一个old:s/old/new/g:替换当前行的所有old:n,ms/old/new/g:替换第 n 行到第 m 行之间的所有old(如:1,10s/old/new/g)
五、文件操作
- 保存与退出:
:w:保存文件:w!:强制保存(即使文件为只读):q:退出:q!:强制退出(不保存修改):wq或ZZ:保存并退出:wq!:强制保存并退出
- 另存为与读取文件:
:w filename:将当前内容另存为指定文件:r filename:读取指定文件的内容并插入到当前光标位置
- 文件信息:
:f或:file:显示当前文件名、文件状态等信息
六、分屏操作
- 创建分屏:
:split或:sp:水平分屏(上下两个窗口):vsplit或:vsp:垂直分屏(左右两个窗口):new:水平分屏并创建新文件:vnew:垂直分屏并创建新文件
- 切换分屏:
Ctrl+w w:在分屏窗口间循环切换Ctrl+w h:切换到左边的窗口Ctrl+w j:切换到下边的窗口Ctrl+w k:切换到上边的窗口Ctrl+w l:切换到右边的窗口Ctrl+w q:关闭当前窗口(等价于:q)
- 调整分屏大小:
Ctrl+w +:增加当前窗口高度Ctrl+w -:减少当前窗口高度Ctrl+w >:增加当前窗口宽度Ctrl+w <:减少当前窗口宽度Ctrl+w =:使所有窗口等宽等高
七、高级技巧
- 寄存器操作:
"ayy:将当前行复制到寄存器a(a可以是任意字母)"ap:从寄存器a粘贴内容:registers:查看所有寄存器内容
- 宏录制:
qa:开始录制宏到寄存器aq:停止录制宏@a:执行寄存器a中的宏n@a:重复执行宏 n 次(如10@a执行 10 次)
- 快速注释/取消注释:
- 在 Visual 模式下选择多行,然后按
:进入命令行模式,输入s/^/#/可以添加#注释 - 若要取消注释,输入
s/^#//
- 在 Visual 模式下选择多行,然后按
- 自动补全:
- 在 Insert 模式下,按
Ctrl+n或Ctrl+p进行关键字补全
- 在 Insert 模式下,按
八、配置与帮助
- 临时配置:
:set number或:set nu:显示行号:set nonumber或:set nonu:隐藏行号:set tabstop=4:设置 Tab 键宽度为 4 个空格:set shiftwidth=4:设置自动缩进宽度为 4 个空格:set expandtab:将 Tab 键转换为空格:set paste:进入粘贴模式(避免自动缩进干扰):set nopaste:退出粘贴模式
- 帮助文档:
:help:打开帮助文档:help command:查看特定命令的帮助(如:help w):help subject:查看特定主题的帮助(如:help registers):help :w:查看命令行模式下:w命令的帮助
九、实用组合快捷键
- 快速创建函数框架:
- 在 Insert 模式下,输入
def后按Ctrl+x Ctrl+](需先安装 Python 补全插件)
- 在 Insert 模式下,输入
- 快速添加引号:
- 在 Visual 模式下选择文本,然后按
S"或S'添加引号
- 在 Visual 模式下选择文本,然后按
- 快速添加括号:
- 在 Visual 模式下选择文本,然后按
S(或S[添加括号
- 在 Visual 模式下选择文本,然后按
十、自定义配置(.vimrc)
可在用户主目录下创建
.vimrc 文件,添加以下常用配置:vim
" 显示行号
set number
" 设置 Tab 为 4 个空格
set tabstop=4
set shiftwidth=4
set expandtab
" 启用语法高亮
syntax on
" 搜索时不区分大小写
set ignorecase
" 智能搜索大小写(有大写字母时区分)
set smartcase
" 自动缩进
set autoindent
" 鼠标支持
set mouse=a
" 启用撤销文件(持久化撤销历史)
set undofile
总结
掌握 Vim 快捷键需要一定的练习,但一旦熟练使用,将大幅提升文本编辑效率。建议从基础操作开始,逐步学习高级技巧,并根据自己的使用习惯定制
.vimrc 配置文件。vim快捷键大全
以下是整理后的 Vim 快捷键终极指南,按功能分类并标注使用频率,助你高效掌握:
一、基础模式切换(⭐⭐⭐⭐⭐)
plaintext
i → 进入插入模式(光标前)
a → 进入插入模式(光标后)
I → 行首插入(第一个非空格字符)
A → 行尾插入
o → 下一行插入(新开一行)
O → 上一行插入
Esc → 返回命令模式(或 Ctrl+[)
v → 字符可视化模式
V → 行可视化模式
Ctrl+v → 块可视化模式
: → 进入命令行模式(如 :wq 保存退出)
二、光标移动(⭐⭐⭐⭐⭐)
基础移动(替代方向键):
plaintext
h ← 左移
j ↓ 下移
k ↑ 上移
l → 右移
单词 / 行内移动:
plaintext
w → 下一个单词词首
b ← 上一个单词词首
e → 单词词尾
0 → 行首(第一个字符)
^ → 行首(第一个非空格字符)
$ → 行尾
f{char} → 本行查找下一个 {char}(如 fa 找 a)
t{char} → 本行查找下一个 {char} 前一个位置
; → 重复上一次 f/t 查找
, → 反向重复上一次 f/t 查找
行间 / 文件移动:
plaintext
gg → 文件开头
G → 文件结尾
nG → 第 n 行(如 10G 到第 10 行)
% → 匹配括号 (), [], {}
H → 屏幕顶部
M → 屏幕中间
L → 屏幕底部
Ctrl+u → 向上滚动半屏
Ctrl+d → 向下滚动半屏
三、文本编辑(⭐⭐⭐⭐⭐)
删除 / 剪切:
plaintext
x → 删除当前字符
dd → 删除当前行(可用于粘贴)
ndd → 删除 n 行(如 3dd 删除 3 行)
dw → 删除到下一个单词开头
d$ → 删除到行尾
d0 → 删除到行首
d% → 删除到匹配括号
复制 / 粘贴:
plaintext
yy → 复制当前行
nyy → 复制 n 行
yw → 复制单词
y$ → 复制到行尾
p → 粘贴(光标后)
P → 粘贴(光标前)
替换 / 修改:
plaintext
r{char} → 替换当前字符(如 ra 替换为 a)
R → 进入替换模式(持续替换)
cw → 删除单词并进入插入模式
u → 撤销
Ctrl+r → 重做
J → 合并当前行与下一行
~ → 切换字符大小写
四、查找与替换(⭐⭐⭐⭐)
查找:
plaintext
/pattern → 向前查找(如 /hello)
?pattern → 向后查找
n → 重复上次查找(同方向)
N → 反向重复
* → 查找当前光标下的单词
替换:
plaintext
:%s/old/new/g → 全局替换 old 为 new
:%s/old/new/gc → 全局替换(每次询问)
:s/old/new/ → 当前行第一个匹配项
:n,ms/old/new/g → 第 n 行到 m 行替换
五、文件操作(⭐⭐⭐⭐)
plaintext
:w → 保存
:w! → 强制保存(只读文件)
:q → 退出
:q! → 强制退出(不保存)
:wq → 保存并退出
:saveas filename → 另存为
:r filename → 读取文件内容到当前位置
:f → 显示当前文件名和状态
六、分屏与标签页(⭐⭐⭐)
分屏:
:sp → 水平分屏
:vsp → 垂直分屏
Ctrl+w w → 切换窗口
Ctrl+w h → 左窗口
Ctrl+w j → 下窗口
Ctrl+w k → 上窗口
Ctrl+w l → 右窗口
Ctrl+w q → 关闭当前窗口
Ctrl+w = → 均等分屏
标签页:
:tabnew → 新建标签页
:tabnext → 下一个标签页
:tabprev → 上一个标签页
:tabclose → 关闭当前标签页
七、高级技巧(⭐⭐⭐)
寄存器:
"ayy → 复制当前行到寄存器 a
"ap → 从寄存器 a 粘贴
:reg → 查看所有寄存器
宏录制:
qa → 开始录制宏到 a
q → 停止录制
@a → 执行宏
10@a → 重复执行 10 次
可视模式操作:
v → 字符选择
V → 行选择
Ctrl+v → 块选择(矩形区域)
选中后:
d → 删除选中内容
y → 复制选中内容
:s/old/new/g → 对选中内容替换
八、配置与帮助(⭐⭐)
临时配置:
:set number → 显示行号
:set nonumber → 隐藏行号
:set tabstop=4 → Tab 宽度为 4
:set expandtab → Tab 转换为空格
:set paste → 粘贴模式(避免格式错乱)
永久配置:
编辑
编辑
~/.vimrc 添加:set number " 显示行号
set tabstop=4 " Tab 宽度
set expandtab " 使用空格代替 Tab
syntax on " 语法高亮
set autoindent " 自动缩进
set mouse=a " 启用鼠标
帮助:
:help → 打开帮助文档
:help command → 查看命令帮助(如 :help w)
:help subject → 查看主题帮助(如 :help registers)
九、效率组合(⭐⭐⭐⭐⭐)
ciw → 删除当前单词并进入插入模式
di" → 删除双引号内的内容(不包括引号)
da" → 删除双引号及内容
vi" → 选中双引号内的内容
va" → 选中双引号及内容
Ctrl+x Ctrl+f → 文件名补全
Ctrl+x Ctrl+o → 代码补全
十、常用缩写
w → write(保存)
q → quit(退出)
s → substitute(替换)
g → global(全局)
v → visual(可视化)
练习建议
- 每天掌握 5 个快捷键,持续一周即可大幅提升效率。
- 用 Vim 处理日常文本,如写代码、记笔记,形成肌肉记忆。
- 自定义
.vimrc,将常用配置写入,如行号、缩进等。 - 使用插件:如
NERDTree(文件树)、CtrlP(文件搜索)等。
通过系统化练习,Vim 会成为你效率最高的编辑器! 🚀
浙公网安备 33010602011771号