【轉】一塊兒來講Vim語

做爲一款古老而具備持久生命力的編輯器,Vim 自有它的強大之處。不少人以爲 Vim 的學習曲線太陡峭了,爲了可以把 Vim 用得風生水起,不得不記憶大量的命令。若是你是 Vim 新手,剛入門就開始面對着浩如煙海的命令逐條學習,我相信你必定會逐漸失去對它的興趣。其實,Vim 以一種近乎天然語言的方式幫助你完成文本的編輯工做。只須要熟悉幾條簡單的語法,你就會坐在旋轉座椅上先後打轉,感慨美妙的生活又回來了。html

咱們假設你已經瞭解了 Vim 的幾種經常使用的工做模式(正常模式、插入模式、命令模式等),若是你還不瞭解,請先閱讀這裏。如今就讓咱們一塊兒來學習一下 Vim 語吧。vim

動詞

動詞表明瞭咱們打算對文本進行什麼樣的操做。例如:編輯器

  • d 表示刪除(delete)ide

  • r 表示替換(replace)學習

  • c 表示修改(change)spa

  • y 表示複製(yank).net

  • v 表示選取(visual select)code

名詞

名詞表明瞭咱們即將處理的文本。Vim 中有一個專門的術語叫作文本對象(text object),下面是一些文本對象的示例:htm

  • w 表示一個單詞(word)對象

  • s 表示一個句子(sentence)

  • p 表示一個段落(paragraph)

  • t 表示一個 HTML 標籤(tag)

  • 引號或者各類括號所包含的文本稱做一個文本塊。

介詞

介詞界定了待編輯文本的範圍或者位置。例如:

  • i 表示「在...以內」(inside)

  • a 表示「環繞...」(around)

  • t 表示「到...位置前」(to)

  • f 表示「到...位置上」(forward)

下面是幾個有關範圍的示意圖,大家感覺一下:

示意圖

組詞爲句

有了這些基本的語言元素,咱們就能夠着手構造一些簡單的命令了。文本編輯命令的基本語法以下:

動詞 介詞 名詞

下面是一些例子(若是熟悉了上面的概念,你將會看到這些例子很是容易理解),請親自在 Vim 中試驗一番。

# 刪除一個段落: delete inside paragraph
dip

# 選取一個句子: visual select inside sentence
vis

# 修改一個單詞: change inside word
ciw

# 修改一個單詞: change around word
caw

# 刪除文本直到字符「x」(不包括字符「x」): delete to x
dtx

# 刪除文本直到字符「x」(包括字符「x」): delete forward x
dfx

數詞

數詞指定了待編輯文本對象的數量,從這個角度而言,數詞也能夠看做是一種介詞。引入數詞以後,文本編輯命令的語法就升級成了下面這樣:

動詞 介詞/數詞 名詞

下面是幾個例子:

# 修改三個單詞:change three words
c3w

# 刪除兩個單詞:delete two words
d2w

另外,數詞也能夠修飾動詞,表示將操做執行 n 次。因而,咱們又有了下面的語法:

數詞 動詞 名詞

請看示例:

# 兩次刪除單詞(等價於刪除兩個單詞): twice delete word
2dw

# 三次刪除字符(等價於刪除三個字符):three times delete character
3x

怎麼樣,是否是很容易理解?

轉自簡書http://www.jianshu.com/p/a361ce8c97bc

相關文章
相關標籤/搜索