简明 vim 练级攻略
(1) 存活
(2) 感觉良好
(3) 觉得更好、更快、更强
(4) vim 超能力

第一级别:在 Normal 模式下生存:
(1) i: insert
(2) a: add
(3) ESC: 回到 Normal 模式
(4) x: 删除当前光标所在的一个字符
(5) dd: 删除当前行,并存到剪贴板里
(6) p: 粘贴剪贴板
(7) 方向键:hjkl、或、上下左右
h: 左
l: 右
j: 下
k: 上
10j, 5k, 4h

第二级别:
(1) 各种插入模式
大写字符是在之前的操作,小写字符是在之后的操作
a: 光标后插入
o: 在当前行后插入一个新行
O: 在当前行前插入一个新行
cw: 替换从光标所在位置后到一个单词结尾的字符
其实是先删除,然后再进入 insert 模式

(2) 光标移动

0: 到行头
^: 到行头(和 0 差一个字符)
$: 到行尾
g_: 到本行最后一个不是 blank 字符的位置(和$类似)
/flag: 搜索 flag 字符串(如果有多个,按 n 键到下一个)
(3) 剪切复制粘贴
dd、p、yy、u

(4)同时打开多个文件时:
:bn
:bp
:n
来切换到下一个、或上一个文件

单词的定义:
程序变量:一个单词由字母、数字和下划线组成
程序语句:由 blank 字符分隔符(程序语句)

第三级:更好、更快、更强
(1) 重复
. 重复上一次命令
N<command> 重复N次
    3p
    2dd
    100ihello[ESC]
(2) 光标移动
行移动 :xx, NG, gg, G:到第xx行、第N行、第一行、最后一行
按单词移动:
    w: 到下一个单词的开头
    e: 到下一个单词的结尾
匹配形式移动:
    %: 匹配括号移动,包括(, [, {, 需要把光标先移到括号上
    * 和 #: 匹配光标当前所在的单词,移动光标到下一个(或上一个)匹配单词
        * 是下一个,# 是上一个

更快
很多命令可以和移动光标的命令连动:<start position><command><end position>
0y
    先到行头,从这里开始拷贝,拷贝到本行最后一个字符
ye
    从当前位置拷贝到本单词的最后一个字符
y2/foo
    拷贝两个"foo"之间的字符串

第四级:超能力
在当前行上移动光标:
0 行头
^ 本行的第一个非 blank 字符
$ 行尾
g_ 本行最后一个不是 blank 字符的位置
fa 到下一个为 a 的字符处
fS 到下一个为 S 的字符处
3fa 在当前行查找第三个出现的 a
F和T 和f和t一样,相反方向
    大写字母的功能是向前,小写字母的功能是向后
dt"
    在当前行内,删除所有的内容,直到遇到双引号"
df"
    功能类似,在实验中看结果
dd
    删除当前光标所在的行
d1[Enter], d2[Enter], d3[Enter]
    删除当前光标之下的2,3,4行(包括当前光标行)
3dd, 4dd, 5dd
    删除当前光标之下的3, 4, 5行 (包括当前光标行)

区域选择<action>a<object> 或 <action>i<object>
在 visual 模式下
action 可以是任何的命令,如 d, y, v
object 可能是 w(一个单词), W(一个以空格为分割的单词), s(一个句子), p(一个段落), 一个特别的字符" ' ) } ]等

举例
    当前字符串 (map (+)("foo"))
    visual 模式,光标键在第一个 o 的位置
    vi" -> foo
    va" -> "foo"
    vi) -> "foo"
    va) -> ("foo")
    v2i) -> map (+)("foo")
    v2a) -> (map (+)("foo"))
    i 是不选择当前字符的匹配
    a 是选择当前字符的匹配

块操作:
    0 <C-v> <C-d> I-- [ESC]
    ^ <C-v> hjkl选中块 x [ESC]

自动提示:
    Insert 模式下,<C-n> 和 <C-p> 自动补全提示

宏录制:
    qa 把操作记录在寄存器 a
    @a 会 replay 被录制的宏
    @@ 是一个快捷键用来 replay 最新录制的宏

举例:在一个只有一行且这一行只有 "1" 的文本中:
    qaYp<C-a>q
    qa 开始录制
    Yp 复制行
    <C-a> 增加 1 
    q 录制结束
    10@a
    10@@

https://coolshell.cn/articles/5426.html