一个多次入坑 vim 失败者的又一次入坑笔记

0x00 前言

从大一开始接触并使用 linux 到现在, vim 一直是一个不可能绕过的问题(emacs 对我来说来复杂了)。然而中途因为各种原因多次放弃,导致现在只会无脑 jjjjjjjjjj 。

我记得上次放弃的原因是 youcompleteme 太难配了,还老是弹出错误。 这次用上了 neovim, 换了一个补全插件,感觉很爽,于是又一次开始使用 vim ,在这里把新学到的东西记录一下。反正我博客没什么人来光顾,主要是我自己看,一些我比较熟悉的东西就不再啰嗦了,RTFM.

0x01 基础操作

  1. 光标移动

    • h j k l 左下右上移动一格
    • w e b 单词之间移动
    • ^ $ 0 f/F t/T 行内移动 首 / 尾 / 非空首 / 跳转到行内某字符/前
    • /sth ?sth 向后/前搜索
    • gg G G<行数> 到首行 / 末行 / 任意行
  2. 插入

    • i 当前光标前插入 insert
    • a 当前光标后插入 append
    • I 行首非空白处开始插入
    • A 行尾插入
    • o/O 下/上 另起一行插入 open
    • c<范围> 删除范围内的内容并插入 change
  3. 还有一些操作

    • u 撤销 undo
    • <C-r> 撤销掉撤销 redo
    • y<范围> 复制 yank
    • p/P 光标后/前粘贴 paste
    • d<范围> 删除 delete
  4. 常用命令

    上面这些都是在 Normal 模式直接按键的,还需要 :<command><Enter> 的方式来执行一些命令

    • :w 存盘 write
    • :e 新开一个文件 edit
    • :q 退出 (第一次退出 vim 在正确执行这条命令之前会产生大量 真·随机字符串 ) quit
    • :x 存盘+退出
    • :saveas 另存为
    • :bn 下一个buffer(tab) buffer next
    • :bd 关闭buffer(tab) buffer delete
    • :sp 水平分割窗口打开 split
    • :vsp 垂直分割窗口打开 vertical split
    • :!<shell命令> 去执行外部命令
    • :r 把其他文件加进当前文件光标后
  5. 简单总结

    1. 有些操作是不需要操作范围的,有些比如 c, y 等需要接范围,范围的描述跟光标的移动类似
    2. 还有很多没提到的操作,等我学会了再加上,目前写的都是我会的

0x02 组合操作

用的不熟, 积累经验中, 待续