0x00 前言
从大一开始接触并使用 linux 到现在, vim 一直是一个不可能绕过的问题(emacs 对我来说来复杂了)。然而中途因为各种原因多次放弃,导致现在只会无脑 jjjjjjjjjj 。
我记得上次放弃的原因是 youcompleteme 太难配了,还老是弹出错误。 这次用上了 neovim, 换了一个补全插件,感觉很爽,于是又一次开始使用 vim ,在这里把新学到的东西记录一下。反正我博客没什么人来光顾,主要是我自己看,一些我比较熟悉的东西就不再啰嗦了,RTFM.
0x01 基础操作
光标移动
h j k l
左下右上移动一格w e b
单词之间移动^ $ 0 f/F t/T
行内移动 首 / 尾 / 非空首 / 跳转到行内某字符/前/sth ?sth
向后/前搜索gg G G<行数>
到首行 / 末行 / 任意行
插入
i
当前光标前插入 inserta
当前光标后插入 appendI
行首非空白处开始插入A
行尾插入o/O
下/上 另起一行插入 openc<范围>
删除范围内的内容并插入 change
还有一些操作
u
撤销 undo<C-r>
撤销掉撤销 redoy<范围>
复制 yankp/P
光标后/前粘贴 pasted<范围>
删除 delete
常用命令
上面这些都是在 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
把其他文件加进当前文件光标后
简单总结
- 有些操作是不需要操作范围的,有些比如 c, y 等需要接范围,范围的描述跟光标的移动类似
- 还有很多没提到的操作,等我学会了再加上,目前写的都是我会的
0x02 组合操作
用的不熟, 积累经验中, 待续