《Practical Vim》阅读笔记 (1)

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

[版权声明] Creative Commons License 本文采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可。

Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments