viw 它的作用是選取一個單詞(word),無論光標在這個單詞的哪個位置都能選中整個單詞。
每日一Vim(18)Text-Object
前兩節講了Visual mode相關內容,這里提一個小問題,“如何選擇一個單詞?”3秒后...,你可能會使用命令vw,很不幸的是它會把下一個單詞的首字母也選中。如果你足夠細心的話,你會發現答案在之前的章節中講過,命令是:viw。它的作用是選取一個單詞(word),無論光標在這個單詞的哪個位置都能選中整個單詞,那么i到底有什么作用呢?這就是今天要講解的內容。
Text-Object:可以指一個單詞,一整句文本,抑或一對括號內的文本,甚至是html或xml標簽內的文本,都可以抽象成Text-Object。與Text-Object緊密相關的兩個命令就是a和i,啊?這兩個命令不是append和insert嗎?其實,a和i操作在Visual mode或者某些操作(比如:d,y等)后面就是另外一種效果了。例如,刪除一個單詞可以用daw或者diw。那么a與i又有什么區別呢?
** a會選擇一個對象(an object)包括空格在內,而i只會選擇一個對象的內部(an inner object)不包含空格。**
下面就是一些命令含義:
aw a word
iw inner word
aW a WORD
iW inner WORD
as a sentence
is inner sentence
ap a paragraph
ip inner paragraph
a[|] a[] block (這里的'|'是或的意思,也就是說'a['和'a]'都表示一個[]塊)
'{} &al;>()與[]作用類似
at a tag (這里的tag可以是html或xml中任何標簽對)
it inner tag
比如在一個html文件中,當前光標在某個標簽對的內容里頭的時候,命令dat會把整個標簽對包括內容都會刪除,而dit只會刪除標簽對之間的內容,保留標簽對。詳細說明可以:help text-objecgts