一组能让你爽出内伤的 Vim motion
Vim 用户都应该知道 Vim 的 Normal 模式下 operator + motion 组合的便利,比如
- daw 删除光标下的普通单词以及其后的空格
- ciW 删除光标下的以空格分隔的“单词”并进入插入模式 (i 表示 inner,不删除单词后的空格)
- yis 复制光标下的句子到默认寄存器
确实这几个都比较平淡无奇,不过请看以下这些
- ci[ 删除一对 [] 中的所有字符并进入插入模式
- ci( 删除一对 () 中的所有字符并进入插入模式
- ci< 删除一对 <> 中的所有字符并进入插入模式
- ci{ 删除一对 {} 中的所有字符并进入插入模式
- cit 删除一对 HTML/XML 的标签内部的所有字符并进入插入模式
- ci” ci’ ci` 删除一对引号字符 (” 或 ‘ 或 `) 中所有字符并进入插入模式
怎么样?ci[ ci< cit 在编辑 PHP 或者 HTML 源码时简直太爽了 (当然 matchit 插件增强的 motion % 也是必不可少的),ci” ci’ ci` 几乎在编辑任何语言的源代码时修改字符串都会非常方便。不过可惜的是以上这些严格的说只能叫文本对象选择,不是 motion,因此只能跟在 v 命令或者某个 operator 后面。可恨用了两年 Vim 居然今天才想起查 Vim 帮助里的 motion.txt。 -_-b
转载于:https://blog.51cto.com/axlrose/1287479