一组能让你爽出内伤的 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

http://techbbs.zol.com.cn/1/60_294.html