文本对象
- aw:一个词
- as:一句。
- ap:一段。
- ab:一块(包含在圆括号中的)。
y, d, c, v都可以跟文本对象。
操作符
所谓文本对象,简单来说就是以一定标准分隔符来标识一段文本,比如一个单词,一句话,一段话。
使用文本对象后你会发现你在vim中的移动和操作速度提升了不是一点半点。
在vim中编辑命令的结构如下:
<number><command><text object or motion>
可以看到文本对象和motion的操作是完全一致的,第一个是数字,比如3w,就向前移动三个单词。
文本对象大致有以下几种:
w s p '' "" <> [] () {} <tag>
其中w表示word,s表示句子,p表示段落,其他的就是包围符号,标签用t表示。
文本对象的操作范围有两种:
- 一种用i表示,是inner的意思,即不包括单词边上的空格符,亦或是<包围符号本身。
- 一种用a表示,是arround的意思,和i相反,使用a就包括了空格符或者包围符号本身。
文本对象的编辑命令就是vim中的几个常用编辑命令,分别是
`y:复制`,`d:删除`,`c:替换`,`v:选中`
来几个例子相信大家就立刻理解了。(例子中*都是光标所在位置)
例一
比如:
<*h2>Sample Title</h2>
按下cit,文本变为:
<h2>*</h2>
例二
再比如:
console.log(“stay hungry,” + “stay *foolish”)
按下da”,文本变为:
console.log("stay hungry," +*)
再按下di),文本变为:
console.log()
比如
Hello Worl*d
例三
按下diw,文本变为:
Hello
插件
- argtextobj
- vim-surround