• vim练级攻略(精简版)


    vim推荐配置:

    curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh

    0. 规定

    Ctrl-λ 等价于 

    :command 等价于 :command <回车>

    n 等价于 数字

    blank字符 等价于 空格,tab,换行,回车等

    1. 命令模式 -> NORMAL

    <operation> 其他 <motion

    1.0 复制

    • yy 等价于 shift + y  → 复制当前行
    • nyy → 从本行向下,复制n行
    • yw → 从光标开始复制到这个单词尾
    • nyw → 从光标开始复制到n个单词尾

    1.1 删除字符

    • x → 删除光标所在的一个字符 s → 删除光标所在的一个字符 并 进入插入模式
    • → 删除光标一个字符
    • nx → 删除光标所在的n字符
    • n→ 删除光标前n一个字符
    • dt字符 → 删除所有的内容,直到遇到字符
      • 比如dt"表示从当前光标开始 一直删除 直到''

    1.2 查找

    • f + 字符 → 查找字符 

    • df + 字符 → 从这个光标开始 一直 删除到字符结束

    • cf + 字符 → 从这个光标开始 一直 删除到字符结束 并进入插入模式

    1.3 命令 →  插入模式

    • → 光标不动 并 进入插入模式
    • a → 光标向后 并 进入插入模式
    • o → 向下新增一行 并 进入插入模式
    • O → 向上新增一行 并 进入插入模式
    • cw → 从光标位置 删除 连续字符 并 进入 插入模式(可以有多种组合)
    • cnw → 从光标位置 删除 连续n字符 并 进入 插入模式(可以有多种组合)
    • shfit + i → 光标移动到行首 并 进入插入模式
    • shift + a → 光标移动到行尾 并 进入插入模式

     1.4 简单的光标移动

    • 0 → 数字零,到行头
    • → 到本行行尾
    • → 到本行第一个不是blank字符的位置
    • g_ → 到本行最后一个不是blank字符的位置

    1.5 对文件操作

    • :e  → 打开文件
    • :w → 保存文件
    • :q! → 退出文件 且 不保存
    • :x, ZZ 或 :wq → 保存并退出 (:x 表示仅在需要时保存,ZZ不需要输入冒号并回车)
    • :saveas  → 另存为 ,还会打开这个文件
    • :bn  :bp → 切换文件,下一个文件,上一个文件 (n表示next,p表示prev)
    • :n 文件名→ 切换到这个文件

    1.6 重复命令

    1. . → (小数点) 可以重复上一次的命令
    2. N → 重复某个命令N次

    1.7 高效的光标移动

    1.7. 1 按行移动 

    • gg → 到第一行
    • G → 到最后一行
    • 数字+G → 到第 几行,或者: 数字→到第几行
    • n + enter→ 向下跳几行

    1.7.2 按单词移动

    默认方式(字母,数字和下划线) 为分割符

    • w → 移动到下一个单词的开头。b 则表示 上一个单词的开头
    • e → 移动到本单词 或 下一个单词的结尾。

    blank字符分隔符

    • shift + w → 到下一个单词的开头,shift +  b 则表示 上一个单词的开头
      • shift + → 移动到本单词 或 下一个单词的结尾。

    1.7.3 (最强)在同一行的光标移动

    从左向右 (正方向)

    • f+字符→光标移动到这个字符处
    • t+字符→光标移动到这个字符的前一个位置

    从右向左 (反方向)

    • shift + f+字符→光标移动到这个字符处
    • shift + t+字符→光标移动到这个字符的后一个位置

    注: 数字 +  f + 字符→移动到当前的第几个字符上

    注:


    1.8 字符大小写转换

    • ~ → 完成光标所在位置字符的大小写切换 

    • n~ → 完成光标所在位置开始往后的n个字符的大小写切换

     1.9 最强的光标移动 

    • % : 匹配括号移动,包括 ({[.(需要把光标先移到括号上)
    • * 和 #:  匹配光标当前所在的单词,移动光标到下一个(或上一个)
      匹配单词(*是下一个,#是上一个)

    1.10 翻页 

    •  → 上翻一页
    •  → 下翻一页
    • → 上翻半页
    • → 下翻半页

    1.11 替换字符

    • r → 替换光标所在位置的字符
    • R → 替换光标所到位置的字符,直到按下「Esc」键为止

    1.12 (重要)区域选择 

    a 或 i