每日vim插件--vim中的文本對象及相關插件

最近在我的博客上 http://foocoder.com  天天都會介紹一個vim插件,想起來園子也很久沒更新了,也來更新一篇。vim

 

今天按讀者留言的要求,介紹下文本對象。同時還會介紹我在用的幾個文本相關的插件.函數

所謂文本對象,簡單來講就是以必定標準分隔符來標識一段文本,好比一個單詞,一句話,一段話。spa

使用文本對象後你會發現你在vim中的移動和操做速度提高了不是一點半點。插件

在vim中編輯命令的結構以下:code

<number><command><text object or motion>

能夠看到文本對象和motion的操做是徹底一致的,第一個是數字,好比3w,就向前移動三個單詞。對象

文本對象大體有如下幾種:ci

w s p '' "" <> [] () {} <tag>

其中w表示word,s表示句子,p表示段落,其餘的就是昨天介紹過的包圍符號,標籤用t表示。get

文本對象的操做範圍有兩種,一種用i表示,是inner的意思,即不包括單詞邊上的空格符,亦或是<包圍符號自己。一種用a表示,是arround的意思,和i相反,使用a就包括了空格符或者包圍符號自己。博客

文本對象的編輯命令就是vim中的幾個經常使用編輯命令,分別是it

`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點了,趕忙發出來。任何問題均可以回覆給我。

相關文章
相關標籤/搜索