Home/Vim常用快捷键使用记录

Created Tue, 10 May 2022 21:14:30 +0800 Modified Fri, 23 Sep 2022 02:31:35 +0800

在刷算法的时候发现采用vim键盘方式码代码方便很多,之前总学了忘,考虑这次总结一些按自己的使用习惯来说常用的.

定位

h: 左
l: 右
j: 下
k: 上

0: 该行首
$: 该行尾
gM: 本行中点

gg: 最开头
G: 最末尾
gm: 屏幕行中点

w: 向前一个单词的开头
W: 向前一个空白隔开的字串
e: 向前一个单词的词尾
E: 向前一个空白隔开的字串结尾
b: 向后一个单词的开头
B: 向后一个空白隔开的字串
ge: 向后一个单词的词尾

): 向前一个句子
(: 向后一个句子

}: 向前一个段落

]]: 向前一个小节
]}: 向后一个未闭合的{
]); 向前一个未闭合的(
[(: 向后一个未闭合的(
[{: 向后一个未闭合的{

%: 本行后一个括号/反括号/注释/if/else/等为孩子
H: 该行的首个非空白字符位置

]*: 向前一个注释的结束
[* : 向后一个注释的开头

f{char}: 右边该字符出现位置
F{char}: 左边该字符出现位置
t{char}: 至右边该字符出现之前
T{char}: 至左边该字符出现之前
;: 重复前一次f/F/t/T
,: 反方向重复前一次f/F/t/T

编辑

输入&修改

# 添加
i: 当前位置输入
I: 当前行最开头输入
a: 当前位置后输入
A: 当前行最末尾输入
o: 创建下方空行并输入
O: 创建上方空行并输入
# 特殊插入
:r [file]: 将文件file的内容插入到光标下
:r! [cmd]: 将shell下的命令输出插入到当前光标下

# 删除
x: 删除光标及之后字符
X: 删除光标及之前字符
dw/daw: 删除当前单词(包括空格)
d$: 从当前字符删除到行尾
d0: 从当前字符删除到行首
dd: 删除整行
D: 删除至行尾(行还在)
J: 与下一行合并

# 修改
r{char}: 替换当前字符
s: 修改单个字符
S: 修改当前行
~: 反转大小写并前进光标
c: 覆盖当前字符(输入前不会把那个字符删除,而是直接覆盖)

搜索

标记

m{a-zA-Z}: 标记当前行
`{a-z}: 跳转到当前文件中的特定标记
`0: vim前次退出的光标位置
``: 前次跳转前的位置
:marks: 跳转标记列表

可视

v: 以字符方式开始高亮
V: 以行方式开始高亮
aw: 选择一个单词
as: 选择一个句子
ap: 选择一个段落
ab: 选择一个块
a': 选择一个单引号字符串
a": 选择一个双引号字符串
a`: 选择一个反引号字符串

References

VIM 中文帮助: 总览最常用的命令