vim中的文字物件及相關外掛程式

來源:互聯網
上載者:User

最近在個人部落格上 http://foocoder.com  每天都會介紹一個vim外掛程式,想起來園子也好久沒更新了,也來更新一篇。

今天按讀者留言的要求,介紹下文字物件。同時還會介紹我在用的幾個文本相關的外掛程式.

所謂文字物件,簡單來說就是以一定標準分隔字元來標識一段文本,比如一個單詞,一句話,一段話。

使用文字物件後你會發現你在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

很容易理解是不是?有沒有發現為什麼說文字物件會非常方便了?無論游標在文本的哪個位置,都可以直接操作整個文本。體驗箭步如飛的感覺吧。

vim還允許使用指令碼來自訂文字物件,這就是我們今天要介紹的外掛程式了,這些外掛程式自訂了一些文字物件。

1.CamelCaseMotion

該外掛程式是把駝峰詞語的每個單詞分開,舉個例子:

get*ElementsByClassName

按下di,w,則文本變為:

getByClassName

非常方便。

2.argtextobj

該外掛程式定義了函數內的參數文字物件。比如:

foo(text, ti*mes, option) {}

按下daa,則文本變為:

foo(text, option) {}

今天暫時就介紹到這裡。都快0點了,趕緊發出來。任何問題都可以回複給我。

返回欄目頁:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/extra/

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.