Vim 的东西时而学一点,但很快又会忘记,就是最简单的 h, j, k, l 来移动光标都会有所迟疑,因为一直未强迫自己完全脱离方向键来使用 Vim,下个目标是 87 键的键盘都嫌多,打算入一个 61 键的 WSAD 键盘, HHKB 还是有些极端了。
找到了一本学习 Vim 的好书 《Practical Vim》第二版,阅读时把对自己有用的东西仅当笔记记下来备忘,这个其实更应该记录在我的 Evernote 中作为私有笔记。重点的东西我在书中注解了,这里的笔记只能算是一个补充。
1. *
: 在搜索光标所在单词,并在结果中跳跃。因为光标在当前要搜索的单词上的话就没有必要再用 /<当前单词>
来查找。
2. :h key-notation
: 显示 Vim 的按键是如何表示的,如 <CR>
: carriage return
3. $ vim -u NONE -N: 不加载 `~/.vimrc
来启动非兼容模式的 Vim; vim -u code/essential.vim
: 指定配置文件来启动 Vim
4. :h +feature-list: 显示所具有的特性
5. .
: 这是一个非常有用的命令,以前一直忽略了它。它重新上一次修改操作,如 dd
后,一直按差 .
就不停的进行行删除。Vim 中从进入到插入模式到返回到命令模式之间的所有被录制为最小的 .
宏,
6. >G
: 从当前行到文件末尾进行退格
7. 平时常的命令模式转入插入模式的命令是 o
, O
, A
, 和 i
; 还须再增加几个常用的命令:
C
: (c$)删除当前光标至行尾, 我之前的操作是 c$
,
a
: 当前光标后插入, 很少用这个, 基本都是用 i
, 然方向键
往后跳一下
I
: (^i)当前行最前端(非空白字符)
S
(^C)删除当前行并插入新行, 我之前的操作是 dd
, 然后 O
上面插入新行
s
: (cl)删除光标位置上字符并由此插入, 我之前的操作是 i
再按 backspace
删除前一个字符
8. f
, F
, t
, 和 T
命令:f
往右移动到指定字符上, F
往左移动到指定字符上; t
往右移动到字符之前, T
往左移动到字符之后。只搜索字符,并不能搜索字符串。;
和 ,
可以正向/反向(重复/回退)重复前面四个命令,像 .
重复上最后一次修改一样。或者可以借助于 /
或 ?
搜索来移动光标。
9. &
用来重复替换操作,例如对内容 abababab
, 光标行首时, :s/a/X
会替换第一个 a 为 X, 连续按 &
就会重复替换其余的 a
字符, 这个重复操作用 .
是没用的
10. <C-r>
撤销 u
的操作,类似于系统的 cmd+shift+z
和 cmd+z
的关系
11. 删除当前单词最高效的方法是 daw
, 无论光标是在当前单词的哪个字母上, 而且连带单词前的空白字符也会删除掉
12. 移动光标到指定行,以前一直不清楚,其实就是 123gg
就移到了第 123 行
13. Operator + Motion = Action. dap
: 删除整段。:h operator
, 操作命令后需要接移动指令才有效,或重复操作命令作用于当前行。如 c
, d
, y
, g~
, gu
, gU
, >
, <
, =
, 和 !
, 当输入 g~
后没什么效果,再加上移动指令,如 g~$
就把当前位置到行末的字母全交换了大小写。重复操作令作用当前行,如 dd
相当于 0d$
, gu
的重复可以是 gugu
或 guu
, gU
类似。>>
缩进, gg
移到缓冲区第一行。
重点:关于重复操作:
.
重复上次修改,正常模式下对内容的修改;
或,
正或反向重复上次的 Motion&
重复上次的替换操作,如s/ab/cd
@:
重复上次的 Ex:
命令, 这个@:
输入太麻烦
本文链接 https://yanbin.blog/practical-vim-2-notes-1/, 来自 隔叶黄莺 Yanbin Blog
[版权声明] 本文采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可。