《Vim实用技巧(第2版)》学习笔记:技巧12-双剑合璧,天下无敌
1. 操作符 + 动作命令 = 操作
-
d{motion}命令可以对一个字符、一个完整单词或一整个段落进行操作,它作用的范围是由动作命令决定的。
-
c{motion},y{motion}等被统称为操作符(operator)
-
g、gu、gU命令要用两次按键来调用,g被当做前缀字符,用以改变其后面的按键行为。
-
Vim的语法只有一条额外规则,即:当一个操作符命令被连续调用2次时,他会作用于当前行。例如:
序号 命令 用途 1 dd 删除当前行 2 cc 删除当前行并进入插入模式 3 yy 复制当前行 4 >> 缩进当前行 5 = = 当前行自动缩进 6 gUgU(gUU) 当前行全转大写 7 gugu(guu) 当前行全转小写 8 g~ g~(g ~ ~) 当前行大小写反转 -
Vim的操作符
命令 用途 c 修改 d 删除 y 复制到寄存器 g~ 反转大小写 gu 转换为小写 gU 转换为大写 > 增加缩进 < 减少缩进 = 自动缩进 ! 使用外部程序过滤{motion}所跨越的行
2. 自定义操作符与已有动作命令协同工作
- Tim Pope的commentary.vim,此插件为Vim支持的编程语言增添了注释以及取消注释的命令
命令 含义 gc{motion} 切换指定行的注释状态 gcap 切换当前段落的注释状态 gcG 注释当前行到文件结尾 gcc 注释当前行
3. 自定义动作命令与已有操作符协同工作
- Kana Natsuno 的textobj-entire插件,新增2种文本对象:ie和ae。那么gg=G 就可以用=ae替换了
4. 操作符待决模式
- 在命令dw中,输入d但没有输入w的短暂时间间隔就是操作符待决模式。
- Esc结束操作符待觉模式
5. 总结
- 认清Vim一个操作的组成可以帮助我们理解Vim的操作原理,方便我们扩展我们的命令。
- Vim的操作符要多练习。
- commentary.vim插件很好用,推荐安装~~
- 欢迎留言一起学习讨论!