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 - 删除当前字符并从该位置插入