進(jìn)行修改的時候,我們通常要清楚兩件事情异逐。
一:進(jìn)行怎樣的修改捶索。
比如刪除、改動灰瞻、復(fù)制等腥例。
二:修改哪里?或者說修改的范圍是什么酝润?
比如刪除一個詞燎竖、刪除一句話、刪除一個段落等要销。
為了方便講解构回,我們先來講解:范圍
之前我們在講解移動時,用kjhl進(jìn)行字符間移動,用w進(jìn)行單詞間移動纤掸,移動距離從小到大脐供,逐步升級。
同理借跪,我們在確定范圍時政己,也用到了類似的東西。不過掏愁,要更細(xì)致一些歇由。
并且,范圍操作和移動操作還有很多相通的地方果港。
一沦泌、范圍
只要你英語懂一點,很容易就能理解京腥。
(galipy老師在這里再次強(qiáng)調(diào)學(xué)好英語的重要性=_=)
比如:
aw 表示a word 一詞
as 表示a sentence 一句
ap 表示a paragraph 一段
還有一些其他的赦肃,比如:
at 表示a tag 一標(biāo)簽塊
a( 表示一括號對兒
具體還有什么,可以直接在你的vim中輸入如下代碼進(jìn)行查閱:
:help text-objects
那么公浪,這個范圍要怎么用呢他宛?
他需要和操作組合起來。
二欠气、操作
常見操作有:
d(表示刪除厅各,delete的縮寫)
c(表示修改,change的縮寫)
y(表示復(fù)制预柒,yanking的縮寫队塘。復(fù)制之所以用這個,是因為c字母已經(jīng)被占用了宜鸯。憔古。)
具體還有哪些操作,我們可以在vim中輸入如下代碼:
:help operator
下面淋袖,我們用操作d來講解如何與范圍組合使用鸿市。
三、組合:操作+范圍(operator + motion)
vim更適合母語為英語的人使用即碗。
比如焰情,他們想刪除一個單詞,那么他們心中想的就是delete a word剥懒。
這一句在vim中内舟,只要輸入如下縮寫即可:
daw
從光標(biāo)處開始的一個單詞就會被刪除掉。
(注意:在普通模式中操作初橘。)
刪除一句話就是:delete a sentence
das
刪除一個段落就是:delete a paragraph
dap
不過验游,這些操作都是從光標(biāo)處開始充岛。也就是說,如果你想刪除一句話批狱,但是裸准,你的光標(biāo)停在了句子中間,那么赔硫,你只能刪除半句炒俱。所以,每次操作爪膊,都要先把光標(biāo)移動到句子開頭权悟。
為了解決這個繁瑣的操作,vim提供了另一種描述方式:
delete inner sentence刪除內(nèi)含句推盛。無論你的光標(biāo)在哪峦阁,都可以直接刪除整句。
縮寫操作為:
dis
相應(yīng)的耘成,也會有:
diw
dis
dip
dit
如果明白了d(刪除)操作與范圍操作的組合榔昔,那么,上面舉例的兩個其他功能鍵也應(yīng)該可以上手了瘪菌。
c表示修改
在普通模式下按c撒会,然后確定范圍,然后回車师妙。
比如诵肛,你選了一句話,回車之后默穴,這句話會被刪除怔檩,并且切換為輸入模式。
y表示復(fù)制
在普通模式下按y蓄诽,然后確定范圍薛训,然后回車。
比如仑氛,你選了一句話许蓖,回車之后,這句話會被復(fù)制到類似剪貼板的地方调衰。之后按下p鍵才能粘貼。
對于母語非英語的少年自阱,只能通過多多練習(xí)來掌握這些技巧了:p
四嚎莉、拓展
最后再來說說范圍操作和移動操作的一些共通之處吧。
主要的共通之處在于跳轉(zhuǎn)操作上沛豌。
比如
gg
G
H
M
L
甚至是 f 功能也是可以用的趋箩,比如:
eg:there is noting to tall.
dfg
eg: to tall
至于具體有哪些共通操作赃额,大家自己探索吧~
五、思考
1叫确、
我們知道跳芳,如果想刪除一行的話,我們通常會用快捷鍵:
dd
那么竹勉,如果想復(fù)制一行飞盆,或修改一行,應(yīng)該如何操作次乓?
2吓歇、
daw是刪除一個詞的意思,那么它是不是也能看成是進(jìn)行了一次操作票腰?
那么如何進(jìn)行N次操作城看?
(ps:系統(tǒng)內(nèi)置了一個重復(fù)操作的快捷鍵:小數(shù)點,不過它只能重復(fù)一次上一次操作杏慰。)