vimplus 快捷键
Ehoac Lv3

窗口管理

Leader 操作

快捷键 说明
, Leader Key
< leader >n 打开/关闭资源管理器
< leader >t 打开/关闭函数列表
< leader >d 删除当前 buffer
< leader >D 删除其他 buffer

功能键

快捷键 说明
< c-p > 切换到上一个 buffer
< c-n > 切换到下一个 buffer
< c-w >h 跳转左边的窗口
< c-w >l 跳转右边的窗口
< c-w >j 跳转上边的窗口
< c-w >k 跳转下边的窗口
< c-w >c 关闭当前窗口
< c-w >o 关闭其它窗口

命令模式

快捷键 说明
:e < filename > 新建 buffer 打开文件
:bp 切换到上一个 buffer
:bn 切换到下一个 buffer
:bd 删除当前 buffer
:sp < filename > 横向切分窗口并打开文件
:vsp < filename > 竖向切分窗口并打开文件
:new 打开一个新的窗口编辑新文件
:enew 在当前窗口创建新文件
:vnew 在左右切分的新窗口中编辑新文件
:tabnew 在新的标签页中编辑新文件

光标移动

Leader 操作

快捷键 说明
< leader >w 单词跳转

功能键

快捷键 说明
< c-o > 跳到上一个位置
< c-i > 跳到下一个位置
< c-b > 上一页
< c-f > 下一页
< c-u > 上移半屏
< c-d > 下移半屏

命令模式

快捷键 说明
h 左移动
l 右移动
j 下移动
k 上移动
0 光标移动到行首
^ 跳到从行首开始第一个非空白字符
$ 光标移动到行尾
H 调到屏幕顶上
M 调到屏幕中间
L 调到屏幕下方
:n 跳到第 n 行
w 跳到下一个单词开头(标点或空格分隔的单词)
W 跳到下一个单词开头(空格分隔的单词)
e 跳到下一个单词尾部(标点或空格分隔的单词)
E 跳到下一个单词尾部(空格分隔的单词)
b 上一个单词头(标点或空格分隔的单词)
B 上一个单词头(空格分隔的单词)
ge 上一个单词尾
% 在配对符间移动, 可用于()、{}、[]
gg 到文件首
G 到文件尾
fx 跳转到下一个为 x 的字符
Fx 跳转到上一个为 x 的字符
tx 跳转到下一个为 x 的字符前
Tx 跳转到上一个为 x 的字符前
; 跳到下一个搜索的结果
[[ 跳转到函数开头
]] 跳转到函数结尾

文本操作

Leader 操作

快捷键 说明
< leader >l 按竖线对齐
< leader >= 按等号对齐

功能键

快捷键 说明
< c-o > 跳到上一个位置
< c-i > 跳到下一个位置
< c-b > 上一页
< c-f > 下一页
< c-u > 上移半屏
< c-d > 下移半屏

命令模式

快捷键 说明
i 在光标处进入插入模式
I 在行首进入插入模式
a 在光标后进入插入模式
A 在行尾进入插入模式
o 在下一行插入新行并进入插入模式
O 在上一行插入新行并进入插入模式
gi 进入到上一次插入模式的位置
Ya 复制行文本到字母 a
Da 剪切行文本到字母 a
Ca 改写行文本到字母 a
gcc 注释代码
gcap 注释段落
vif 选中函数内容
dif 删除函数内容
cif 改写函数内容
vaf 选中函数内容(包括函数名 花括号)
daf 删除函数内容(包括函数名 花括号)
caf 改写函数内容(包括函数名 花括号)
cc 改写当前行(删除当前行并进入插入模式),同 S
cw 改写光标开始处的当前单词
ciw 改写光标所处的单词
caw 改写光标所处的单词,并且包括前后空格(如果有的话)
ct, 改写到逗号
c0 改写到行首
c^ 改写到行首(第一个非零字符)
c$ 改写到行末
C 改写到行末(同 c$)
ci" 改写双引号中的内容
ci’ 改写单引号中的内容
ci) 改写小括号中的内容
ci] 改写中括号中内容
ci} 改写大括号中内容
cit 改写 xml tag 中的内容
cis 改写当前句子
ciB 改写’{}'中的内容
c2w 改写下两个单词
ct( 改写到小括号前
x 删除当前字符,前面可以接数字,3x 代表删除三个字符
X 向前删除字符
dd 删除当前行
d0 删除到行首
d^ 删除到行首(第一个非零字符)
d$ 删除到行末
D 删除到行末(同 d$)
dw 删除当前单词
dt, 删除到逗号
diw 删除光标所处的单词
daw 删除光标所处的单词,并包含前后空格(如果有的话)
di" 删除双引号中的内容
di’ 删除单引号中的内容
di) 删除小括号中的内容
di] 删除中括号中内容
di} 删除大括号中内容
diB 删除’{}'中的内容
dit 删除 xml tag 中的内容
dis 删除当前句子
d2w 删除下两个单词
dt( 删除到小括号前
dgg 删除到文件头部
dG 删除到文件尾部
d} 删除下一段
d{ 删除上一段
u 撤销
U 撤销整行操作
CTRL-R 撤销上一次 u 命令
J 连接若干行
gJ 连接若干行,删除空白字符
. 重复上一次操作
~ 交换大小写
g~i w 替换当前单词的大小写
gUiw 将单词转成大写
guiw 将当前单词转成小写
guu 全行转为小写
gUU 全行转为大写
gg=G 缩进整个文件
=a{ 缩进光标所在代码块
=i{ 缩进光标所在代码块,不缩进"{"
<< 减少缩进
>> 增加缩进
== 自动缩进
CTRL-A 增加数字
CTRL-X 减少数字
p 粘贴到光标后
P 粘贴到光标前
v 开始标记
y 复制标记内容
V 开始按行标记
CTRL-V 开始列标记
y$ 复制当前位置到本行结束的内容
yy 复制当前行
Y 复制当前行,同 yy
yt, 复制到逗号
yiw 复制当前单词
3yy 复制光标下三行内容
v0 选中当前位置到行首
v$ 选中当前位置到行末
vt, 选中到逗号
viw 选中当前单词
vi) 选中小括号内的东西
vi] 选中中括号内的东西
viB 选中’{}'中的内容
vis 选中句子中的东西
gv 重新选择上一次选中的文字
:set paste 允许粘贴模式(避免粘贴时自动缩进影响格式)
:set nopaste 禁止粘贴模式
"?yy 复制当前行到寄存器 ? ,问号代表 0-9 的寄存器名称
"?p 将寄存器 ? 的内容粘贴到光标后
"?P 将寄存器 ? 的内容粘贴到光标前
:registers 显示所有寄存器内容
:[range]y 复制范围,比如 :20,30y 是复制 20 到 30 行,:10y 是复制第十行
:[range]d 删除范围,比如 :20,30d 是删除 20 到 30 行,:10d 是删除第十行
ddp 交换两行内容:先删除当前行复制到寄存器,并粘贴

搜索替换

Leader 操作

快捷键 说明
f 搜索~目录下的文件
F 搜索当前目录下的文本
r 全局替换,目前只支持单个文件

命令模式

快捷键 说明
fa 查找字母 a,然后再按 f 键查找下一个
rr 替换文本
r 替换当前字符
R 进入替换模式,直至 ESC 离开
s 替换字符(删除光标处字符,并进入插入模式,前可接数量)
S 替换行(删除当前行,并进入插入模式,前可接数量)
/pattern 从光标处向文件尾搜索 pattern
?pattern 从光标处向文件头搜索 pattern
n 向同一方向执行上一次搜索
N 向相反方向执行上一次搜索
* 向前搜索光标下的单词
# 向后搜索光标下的单词
😒/p1/p2/g 替换当前行的 p1 为 p2
:%s/p1/p2/g 替换当前文件中的 p1 为 p2
:%s//p2/g 替换当前文件中的 p1 单词为 p2
:%s/p1/p2/gc 替换当前文件中的 p1 为 p2,并且每处询问你是否替换
:10,20s/p1/p2/g 将第 10 到 20 行中所有 p1 替换为 p2
:%s/1\2/3/123/g 将“1\2/3” 替换为 “123”(特殊字符使用反斜杠标注)
:%s/\r//g 删除 DOS 换行符 ^M
:g/^\s*$/d 删除空行
:g/test/d 删除所有包含 test 的行
:v/test/d 删除所有不包含 test 的行
:%s/^/test/ 在行首加入特定字符(也可以用宏录制来添加)
:%s/$/test/ 在行尾加入特定字符(也可以用宏录制来添加)
:sort 排序
:g/^(.+)$\n\1/d 去除重复行(先排序)
:%s/^.{10}// 删除每行前 10 个字符
:%s/.{10}$// 删除每行尾 10 个字符

文件操作

命令模式

快捷键 说明
:w 保存文件
:w < filename > 按名称保存文件
ZZ 保存文件(如果有改动的话),并关闭窗口
:e < filename > 打开文件并编辑
:saveas < filename > 另存为文件
:r < filename > 读取文件并将内容插入到光标后
:r !dir 将 dir 命令的输出捕获并插入到光标后
:close 关闭文件
:q 退出
:q! 强制退出
:wa 保存所有文件
:cd < path > 切换 Vim 当前路径
:new 打开一个新的窗口编辑新文件
:enew 在当前窗口创建新文件
:vnew 在左右切分的新窗口中编辑新文件
:tabnew 在新的标签页中编辑新文件

其它

Leader 操作

快捷键 说明
< leader >g 显示 git 仓库提交记录
< leader >G 显示当前文件提交记录
< leader >gg 显示当前文件在某个 commit 下的完整内容
< leader >ff 语法错误自动修复(FixIt)
< leader >e 快速编辑 vimrc 文件
< leader >s 重新加载 vimrc 文件
< leader >h 打开 vimplus 帮助文档
< leader >H 打开当前光标所在单词的 vim 帮助文档
< leader >< leader >i 安装插件
< leader >< leader >u 更新插件
< leader >< leader >c 删除插件

功能键

快捷键 说明
< F5 > 显示语法错误提示窗口
< F7 > 启用 mardown 实时预览
< F8 > 关闭 markdown 实时预览
< F9 > 显示上一主题
< F10 > 显示下一主题

命令模式

快捷键 说明
! 告诉 vim 正在执行一个过滤操作
!5Gsort< Enter > 使用外部 sort 命令对 1-5 行文本排序
!! 对当前行执行过滤命令
!!date< Enter > 用"date"的输出代替当前行
qa 开始录制名字为 a 的宏
q 结束录制宏
@a 播放名字为 a 的宏
100@a 播放名字为 a 的宏 100 次
:normal@a 播放名字为 a 的宏直到自动结束
h tutor 入门文档
h quickref 快速帮助
h index 查询 Vim 所有键盘命令定义
h summary 帮助你更好的使用内置帮助系统
h pattern.txt 正则表达式帮助
h eval 脚本编写帮助
h function-list 查看 VimScript 的函数列表
h windows.txt 窗口使用帮助
h tabpage.txt 标签页使用帮助
h tips 查看 Vim 内置的常用技巧文档
h quote 寄存器
h autocommand-events 所有可能事件
h write-plugin 编写插件
vim -u NONE -N 开启 vim 时不加载 vimrc 文件
vimdiff file1 file2 显示文件差异
 评论