当前位置: 首页 > 工具软件 > GVim > 使用案例 >

Gvim快捷键分类总结

利稳
2023-12-01

Gvim Note

光标跳转

命令解释
h i j k移动光标
gj gk屏幕行移动移动光标
0移动光标至行首
$移动光标至行尾
^移动至行首第一个非空字符
g0屏幕行移动光标至行首
g$屏幕行移动光标至行尾
g^屏幕行移动至行首第一个非空字符
%移动至匹配括号
w移动至下一词首
b移动至前一词首
e移动至下一词尾
ge移动至前一词尾
W移动至下一字串首
B移动至前一字串首
E移动至下一字串尾
gE移动至前一字串尾
a光标后插入
A行尾插入
i光标前插入
I行首插入
f{char}移动光标至字符位置(;下一个 ,上一个)
F{char}向前移动光标至字符位置(;下一个 ,上一个)
t{char}移动光标至字符位置的临近字符(;下一个 ,上一个)
T{char}向前移动光标至字符位置的临近字符(;下一个 ,上一个)
*查找相同单词并跳转(n N)
gg移动至缓冲区首行行首
G移动至缓冲区末行行首
{num}G移动至指定行号行首
:{num}移动至指定行号行首
H移动至屏幕行首行行首
M移动至屏幕行中行行首
L移动至屏幕行末行行首

标记跳转

命令解释
m{a-z}标记位置(缓冲区局部标记)
m{A-Z}标记位置(全局可见)
‘{a-z,A-Z}跳转至标记所在行
`{a-z,A-Z}跳转至标记准确位置
``返回跳转之前的位置
`.跳转至上次修改的地方
`^跳转至上次插入的位置
`[跳转至上次修改或复制的起始位置
`]跳转至上次修改或复制的结束位置
`<跳转至上次高亮选区的起始位置
`>跳转至上次高亮选区的结束位置

删除

命令解释
x删除当前字符
dd删除整行
s删除当前字符并进入插入模式
cw删除至词尾并进入插入模式
cW删除至字串尾并进入插入模式
cc删除当前行并进入插入模式
caw删除单词及尾部空格并进入插入模式
ciw删除单词并进入插入模式
ciW删除至字串尾并进入插入模式
caW删除至字串尾及尾部空格并进入插入模式
cap删除当前段落及尾部空格并进入插入模式
cip删除当前段落并进入插入模式
cis删除当前句并进入插入模式
cas删除当前句以及尾部空格并进入插入模式
C删除当前字符至行尾的内容并进入插入模式
cG删除至缓冲区末尾并进入插入模式(以行为单位)
cgg删除之缓冲区首行并进入插入模式(以行为单位)
c$删除至行尾并进入插入模式
c0删除至行首并进入插入模式
d$删除至行尾
d0删除至行首
dw删除至下一单词词首
db删除至当前单词词首
de删除至词尾
daw删除当前单词及两侧空格
dap删除当前段落
dG删除至缓冲区末尾(以行为单位)
dgg删除至缓冲区首行(以行为单位)
<ctrl-h>插入模式删除前一个字符
<ctrl-w>插入模式删除前一个单词
<ctrl-u>插入模式删除至行首
<ctrl-y>光标上移一行
<ctrl-e>光标下移一行
<ctrl-u>光标上移半屏
<ctrl-d>光标下移半屏
<ctrl-b>光标上移一屏
<ctrl-f>光标下移一屏

复制剪切粘贴

命令解释
y复制当前字符
yy复制当前行
x剪切当前字符
dd剪切当前行
daw剪切当前单词(包括词尾空格)
diw剪切当前单词(不包括词尾空格)
daW剪切到字串尾的内容(包括字串尾空格,包括当前单词)
diW剪切到字串尾的内容(不包括字串尾空格,包括当前单词)
dw剪切当前字符到词尾的内容
dW剪切当前字符到字串尾的内容
dis剪切当前句的内容(不包括句尾空格)
das剪切当前句的内容(包括句尾空格)
dip剪切当前段的内容(不包括段尾空格)
dap剪切当前段的内容(包括词尾空格)
D剪切当前字符至行尾的内容
p粘贴至下一行(光标自动移动至粘贴行行首)
gp粘贴至下一行(光标自动移动至粘贴行下一行行首)
P粘贴至上一行(光变移动至粘贴行行首)
gP粘贴至上一行(光标移动至粘贴行下一行行首)
<ctrl-r>{reg}插入模式从{reg}中粘贴
<ctrl-r>={运算}<cr>插入模式插入运算寄存器的计算结果
"{reg}y普通模式复制到{reg}
"{reg}p普通模式从{reg}粘贴

寄存器

命令解释
无名寄存器(缓存最后一次操作内容)
0-9数字寄存器(缓存最近操作内容,0为复制专用寄存器,1-9为剪切寄存器并动态存放)
-行内寄存器(缓存行内删除内容)
a-z具名寄存器(指定时使用,指定A-Z时直接在a-z之后追加)
% # . :只读寄存器(当前文件名、轮换文件名、最近插入文本、最近操作命令)
=表达式寄存器(执行表达式命令)
* + ~选择及拖拽寄存器(X11 PRIMARY剪切板、X11 CLIPBOARD剪切板、拖拽文本) [注:win和mac系统不区分*与+寄存器]
_黑洞寄存器(不缓存操作内容,用于删除)
/搜索寄存器(缓存最近的搜索的内容)

其他

命令解释
.重复上次命令
u撤销
U整行撤销
<ctrl-r>撤销撤销
=自动缩进
< >更改缩进
<G >G更改缩进至缓冲区末尾
{num}<ctrl-a>后面的数值+{num}
{num}<ctrl-x>后面的数值-{num}
esc <ctrl-[>返回普通模式
<ctrl-o>插入模式下进入插入-普通模式(执行完一次普通模式命令后进入插入模式)
zz重绘屏幕(使当前行显示在屏幕正中)
<ctrl-v>{字符编码}<cr>插入模式利用{字符编码}输入字符
<ctrl-v>U{超三位字符编码}<cr>插入模式利用{超三位字符编码}输入字符
<ctrl-k>{char1}{char2}插入模式利用二合字母插入非常用字符
r普通模式替换当前字符
R普通模式连续替换
gr普通模式虚拟替换当前字符(按位置替换)
gR普通模式连续虚拟替换(按位置替换)

大小写转换

命令解释
~转换当前字符的大小写
g~~转换当前行的大小写
u可视模式下转换为小写
U可视模式下转换为大写
g~将当前选中文本转换为大小写
gu将当前选中的文本转换为小写
gU将当前选中的文本转换为大写
guu当前行转换为小写
gUU当前行转换为大写
guw当前单词转换为小写
gUw当前单词转换为大写

可视模式

命令解释
v激活可视模式
V激活面向行的可视模式
<ctrl-v>激活面向块的可视模式(可以实现多行注释)
viw选中当前单词
viW选中当前字串
vis选中当前句
vib选中当前块
vip选中当前段落
vaw选中当前单词(包括尾部空格)
vaW选中当前字串(包括尾部空格)
vas选中当前句(包括尾部空格)
vab选中当前块(包括尾部空格)
vap选中当前段落(包括尾部空格)
vit选中<{char}></{char}>中间内容
vi(选中()中间内容
vi{选中{}中间内容
vi<选中<>中间内容
vi[选中[]中间内容
vi’选中’’中间内容
vi”选中””中间内容
vat选中<{char}></{char}>整体内容
va(选中()整体内容
va{选中{}整体内容
va<选中<>整体内容
va[选中[]整体内容
va’选中’’整体内容
va”选中””整体内容
gv重选上次高亮选区
o切换选取活动端

查找替换

查找解释
/{chars}正向查找(n下一个N上一个)
?{chars}方向查找(n下一个N上一个)
gn gN查找之后执行命令,跳转至匹配并进入可视模式并选中匹配
/ ?重新执行上次匹配
/ ?{up} {down}浏览查找记录
/e执行查找并将光标跳转至匹配末尾
\vvery magic模式(除下划线、字母、数字外均需要转义)
\Vvery nomagic模式(只用反斜杠需要转义)《正向查找转义/反向查找转义?》
\c不区分大小写
\C强制区分大小写
:noh查找后执行命令,取消高亮
元字符解释
()特殊,添加到临时仓库,使用\1 \2 \3进行引用
\zs \ze特殊,查找范围内匹配起始和匹配结束标识
<>位置,单词边界
^ $位置,匹配行首和行尾
*数量,0-任意个字符
\+数量,1-任意个字符
\?数量,0-1个字符
\{n,m}数量,n-m个字符
\{n}数量,n个字符
\{n,}数量,n-任意个字符
\{,m}数量,0-m个字符
.匹配,通配符
[^]匹配,通配符
[{char}{char}]匹配,任意一个{char}
[^{char}{char}]匹配,除{char}之外的字符
[^{char}{char}]*匹配,除{char}之外的多个字符《为什么*》
\d匹配,[0-9]
\D匹配,[^0-9]
\x匹配,[0-9A-Fa-f]
\X匹配,[^0-9A-Fa-f]
\l匹配,[a-z]
\L匹配,[^a-z]
\u匹配,[A-Z]
\U匹配,[^A-Z]
\w匹配,[0-9A-Za-z_]
\W匹配,[^0-9A-Za-z_]
\t匹配,tab字符
\s匹配,空白字符
\S匹配,非空白字符
替换解释
: s/{chars}/{srtings}执行一次替换
: s/{chars}/{strings}/g执行一行替换(x轴拓展)
:%s/{chars}/{strings}/g执行全局替换(x轴y轴拓展)
g&重复执行上次替换,重新限定范围为%
:&&对当前行执行上次替换
g标志位,在全局范围内执行
n标志位,抑制正常的替换动作
&标志位,使用上次替换时的标志位
c标志位,修改之前需要确认
y替换此处匹配 n忽略此处匹配 q退出替换过程
l替换此处匹配后退出 a替换此处之后所有匹配
e屏蔽错误提示
:%s//{strings}/g常用,使用上次搜索结果替换查找域
:%s/{chars}//g常用,默认使用空格替换{chars}
:%s/{chars}//gn常用,显示匹配个数
\r替换域,插入换行符
\t替换域,插入制表符
\t替换域,插入反斜杠
\\替换域,插入反斜杠
\1 \2 \3替换域,插入子匹配
\0替换域,插入匹配模式所有内容
&替换域,插入匹配模式所有内容
~替换域,调用上次的替换域
\={vim script}替换域,将表达式结果作为替换域

自动补全

命令解释
<ctrl+n>普通关键字(从前向后查找)
<ctrl+p>普通关键字(从后向前查找)
<ctrl+x><ctrl+n>当前缓冲区关键字(从前往后开始查找,可以连续使用)
<ctrl+x><ctrl+p>当前缓冲区关键字(从后往前开始查找,可以连续使用)
<ctrl+x><ctrl+i>包含文件关键字
<ctrl+x><ctrl+]>标签文件关键字
<ctrl+x><ctrl+k>字典查找
<ctrl+x><ctrl+l>整行补全(可以连续使用)
<ctrl+x><ctrl+f>文件名补全
<ctrl+x><ctrl+o>全能补全
<ctrl+n>菜单交互,使用下一匹配项
<ctrl+p>菜单交互,使用上一匹配项
{up}{down}菜单交互,选择上一下一匹配项
<ctrl+y>菜单交互,确认使用当前匹配项
<ctrl+e>菜单交互,退出自动补全
<ctrl+h>菜单交互,从当前匹配项中删除一个字符
<ctrl+l>菜单交互,从当前匹配项中增加一个字符

文件操作

命令解释
:wq保存并退出
:q!放弃更改并退出
:e!放弃更改恢复到上次保存状态
:w{name}另存为
:r{name}读取文件
:r!{cmd}读取{cmd}返回值
 类似资料: