vim快捷键整理
(图片来源自网络)

前言

看了网上很多关于vi/vim快捷键的汇总帖子,感觉乱乱的没有条理,自己整理了一下,方便自己记忆吧。

我整理的分类依据是模式,某一模式其实就是在做某一事情,做啥就在啥分类里面找,个人感觉比较有条理,勿喷哈……

vi的常见模式:

  • 普通模式(进入vi后的默认模式,也可以叫阅读模式,只能看不能编辑。移动光标也仅对其他模式提供帮助。)
    特点是最后一行显示"filename" xL xC(文件名、几行、多少字符)或最后一行为空
  • 块选择模式(移动光标对文本进行选择,并删除、复制粘贴等动作。按v进入,按ESC退出)
    特点是最后一行显示-- VISUAL --
  • 编辑模式(键盘输入,按下字符只表示输入字符本身,按a、i或o进入,ESC退出)
    特点是最后一行显示-- INSERT --
  • 替换模式(输入字符替换掉光标位置的字符,并向后移动光标。按R进入,ESC退出)
    特点就是最后一行显示-- REPLACE --
  • 命令模式(可以理解为对整个文件及编辑器的操作,按英文半角:进入,ESC退出)
    特点就是最后一行显示:

普通模式快捷键

  • 光标移动类
快捷键说明
↑↓←→移动光标
w移动到下一个单词开头
b移动到下一个单词开头
e移动到当前单词的结尾
^光标移动到行首
$光标移动到行尾
(移动到当前句子的开头
)移动到当前句子的结尾
{移动到当前段落的开头
}移动到当前段落的结尾
ENTER光标移动至下一行首
数字ENTER光标移动至下数字行行首
gg光标移动到第一行
数字gg光标移动到数字行
G光标移动到最后一行
H光标移动至屏幕最上一行行首
L光标移动至屏幕最下一行行首
M光标移动至屏幕中间一行行首
/关键字向下搜索,继续搜索n,反向搜索N
?关键字向上搜索,继续搜索n,反向搜索N
  • 删除类
快捷键说明
x删除光标处的字符
数字x从当前光标处往后删除数字个字符(包括当前字符)
X删除光标前的字符
数字X从当前光标处往前删除数字个字符(不包括当前字符)
d0删除光标至行首
D删除光标至行尾
dw删除至下一个单词的开头
d数字w从当前光标处往后删除数字个单词(包括当前单词)
dd删除当前行
D清空当前行内容
dgg删除当前行至第一行
dG删除当前行至最后一行
d数字g删除当前行至第数字行(数字大于当前行数向下删除,小于则向上删除)
数字dd向下删除数字行
  • 复制粘贴类
快捷键说明
yy复制当前行
数字yy向下复制数字行
p在下一行粘贴
P在上一行粘贴
  • 其他类
快捷键说明
u撤销
CTRL+r重做
.再做一次最近一步操作
<<当前行向前缩进
数字<<当前行及下面数字行,向前缩进
>>当前行向后缩进
数字>>当前行及下面数字行,向后缩进

块选择模式快捷键

快捷键说明
v进入块选择模式,不选中任何字符,可通过方向键选择字符
V进入块选择模式,并选中当前行,可通过上下选择行
CTRL+v进入块选择模式,不选择任何字符,可通过左右选择字符,上下选择列
y在块选择模式中复制所选内容
d在块选择模式中删除所选内容

编辑模式快捷键

快捷键说明
a进入编辑模式,在光标后插入
A进入编辑模式,在当前行尾插入
i进入编辑模式,在光标前插入
A进入编辑模式,在当前行首插入
o进入编辑模式,在当前行下插入新行
O进入编辑模式,在当前行上插入新行
s进入编辑模式,并删除光标处的字符
S进入编辑模式,并清空整行
cw进入编辑模式,并删除当前单词
C进入编辑模式,并删除光标位置及后面的内容
cG进入编辑模式,并删除整行及下面所有行

替换模式快捷键

r字符将当前光标替换为字符,不切换模式
R单词进入替换模式,输入字符替换掉光标位置的字符,并向后移动光标,直至退出

命令模式快捷键

快捷键说明
:set nu显示行号
:set nonu取消行号
:set sw=数字设置缩进宽度
:set ai打开自动缩进
:数字1,数字2d删除数字1行到数字2行
:%s/关键词/替换词/g关键词替换为替换词,类似sed命令的替换功能
:w保存
:q退出
:q!强制退出,不保存
:wq保存退出
:x保存退出
:wq!保存并强制退出
:e!不保存,整个文件重做
:w [file]另存为
:r [file]读取文件插入
:!命令临时执行命令

结语

额,必须要说一下,整理是整理,但不是最全的,很多用不到的,难理解的,和极易被其他常用快捷键代替的都没有列举,基本上算是各个经典了。

其实很多快捷键还是非常有规律可循的。

Enjoy it!

Last modification:February 20th, 2022 at 07:35 am
If you think my article is useful to you, please feel free to appreciate