vim装逼要点
最近给IDE装了vim插件(ideaVim),因为觉得写代码时候老是要去按上下左右,效率很低,更主要是low,不够装逼(
但不建议独立使用vim,因为要大量练习才行,和IDE配合使用,可以把重点放在光标移动上,其余功能让IDE来负责。低成本装逼
move
h
j
k
l
- ⬅️
⬇️
⬆️
➡️
w
/e
- 跳转到下一个词 开头/末尾(按符号或空白分词)
- 助记 word / end
W
/E
- 同上(按空白分词)
b
/ge
- 跳转到上一个词 开头/末尾(按符号或空白分词)
B
/gE
- 同上(按空白分词)
f<?>
/t<?>
- 跳转到光标位置后指定 字符上/字符前,不跨行
- 比如 12345,使用
f4
后变为 12345,使用t4
则为 12345 - 助记 find / to,
;
可以重复执行
F<?>
/T<?>
- 跳转到光标位置前指定 字符上/字符前,不夸行
%
- 当前行如果有括号,移动到它的另一半
gg
/G
- 跳转到文件 开头/结尾
<n>gg
/<n>G
- 跳转到指定行号
0
/&
- 移动到 行开头/末尾
^
、_
/g_
- 移动到 行开头/末尾 第一个非空白字符
<Ctrl+b>
/<Ctrl+f>
- 向 上/下 滚一个屏幕
- 助记 back front
<Ctrl+u>
/<Ctrl+d>
- 向 上/下 滚半个屏幕
- 助记 up down
zz
/zt
/zb
- 令光标行处于屏幕 中间/顶部/底部
- 助记 zoom zoom/top/bottom
<Ctrl+o>
/<Ctrl+i>
- 光标跳转到jump list的 上一个位置/下一个位置
- jump list里只记录跳转历史,简单移动光标不会被记录
:jump
可以查看所有位置
m<a-zA-Z>
- 如ma
,标记当前光标位置,并起名为a
- 小写的名字只在当前缓冲区可见,大写可以跨缓冲区
:marks
查看所有标记位置,你也会看到其他非字母的标记
'<a-zA-Z>
/ `<a-zA-Z>
- 如'a
回到a
位置所在在行首/ `a
回到a
位置
- 一个是单引号,一个是反引号,
''
永远返回上一个位置
zo
/zc
- 打开折叠/关闭折叠
zO
/zC
- 打开折叠/关闭折叠,递归
zM
/zR
- 关闭/打开 所有折叠
gd
、<Ctrl+]>
- 跳转到定义,<Ctrl+t>
返回(用的是tag stack)
编辑
dd
/ <n>dd
- 删除当前行 / 删除n行
df<?>
/dt<?>
- 向后删除光标位置到指定字符 / 删除到指定字符前,不跨行
dF<?>
/dT<?>
- 反向,向前删除,同上
d$
/d^
- 从光标删除到 行尾/行开头,用其他位置符也行
yy
/<n>yy
- 复制当前行/复制n行
p
/P
- 粘贴到当前 行后/行前,<n>p
就是重复做n次
"<reg>y
/"<reg>p
- 复制到指定寄存器/从指定寄存器粘贴
- 命令模式
:reg
可以看各个寄存器的内容 +
寄存器通常与系统剪切板互通
di"
/da"
- 删除引号内的内容/连引号一起删,必须单行
- 助记 delete in "" / delete all ""
- 还有
di(
、di{
等
x
- 删除光标字符
r<?>
- 用指定字符替换光标字符
入场
三连入场,神清气爽。从normal模式进入编辑模式
i
/a
- 在当前光标字符 前/后 插入
I
/A
- 在当前行 开头第一非空白字符前插入/结尾最后一个非空白字符后插入
o
/O
- 当前行 下面/上面 起新行
s
- 删除当前字符并从该位置插入