viw 它的作用是選取一個單詞(word),無論游標在這個單詞的哪個位置都能選中整個單詞。 每日一Vim(18)Text-Object 前兩節講了Visual mode相關內容,這裡提一個小問題,“如何選擇一個單詞?”3秒後...,你可能會使用命令vw,很不幸的是它會把下一個單詞的首字母也選中。如果 ...
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