VIM 文本对象选择
VIM 文本对象选择的快捷键值得好好练一下,每天拿出来看看,直到成为肌肉记忆。因为,非常好用。
假设有下面的文本内容:
if (message == "sesame open")
我们进一步假设光标停在“sesame”的“a”上,那么:
- dw(理解为 delete word)会删除 ame␣,结果是 if (message == "sesopen")
- diw(理解为 delete inside word)会删除 sesame,结果是 if (message == "
open") - daw(理解为 delete a word)会删除 sesame␣,结果是 if (message == "open")
- diW 会删除 "sesame,结果是 if (message == open")
- daW 会删除 "sesame␣,结果是 if (message == open")
- di" 会删除 sesame open,结果是 if (message == "")
- da" 会删除 "sesame open",结果是 if (message ==)
- di( 或 di) 会删除 message == "sesame open",结果是 if ()
- da( 或 da) 会删除 (message == "sesame open"),结果是 if␣
- 搭配 s(sentence)对句子进行操作——适合西文文本编辑
- 搭配 p(paragraph) 对段落进行操作——适合西文文本编辑,及带空行的代码编辑
- 搭配 t(tag)对 HTML/XML 标签进行操作——适合 HTML、XML 等语言的代码编辑
- 搭配 ` 和 ' 对这两种引号里的内容进行操作——适合使用这些引号的代码,如 shell 和
Python - 搭配方括号(“[”和“]”)对方括号里的内容进行操作——适合各种语言(大部分都
会用到方括号吧) - 搭配花括号(“{”和“}”)对花括号里的内容进行操作——适合类 C 的语言
- 搭配角括号(“<”和“>”)对角括号里的内容进行操作——适合 C++ 的模板代码
- 再进一步,在a和i前可以加上数字,对多个(层)文本对象进行操作