新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > VIM編輯器學(xué)習(xí)

VIM編輯器學(xué)習(xí)

作者: 時間:2010-08-19 來源:網(wǎng)絡(luò) 收藏
Vim是一個類似于Vi的文本,不過在Vi的基礎(chǔ)上增加了很多新的特性,Vim普遍被推崇為類Vi中最好的一個,事實上真正的勁敵來自Emacs的不同變體?!?p>方法

本文引用地址:http://2s4d.com/article/151642.htm

  Vim目前已經(jīng)有類Unix版和Windows版,盡管vim較vi已經(jīng)改良了不少,但是初次使用還是會一頭霧水,不知如何操作,所以vim要首先過2關(guān)。第一關(guān)是理解vim的設(shè)計思路,vim設(shè)計之初就是整個文本編輯都用鍵盤而非鼠標(biāo)來完成,鍵盤上幾乎每個鍵都有固定的用法,且vim的制作者希望用戶在普通模式(也就是命令模式,只可輸入命令)完成大部分的編輯工作,將此模式設(shè)計為默認(rèn)模式,初學(xué)者打開vim,如果直接輸入單詞,結(jié)果就會滴滴亂響,這是因為vim把用戶輸入的單詞理解為命令了。第二關(guān)是命令關(guān),vim有過百條命令對應(yīng)編輯的需要,如果能熟練使用vim這些命令,編輯速度確實比鼠標(biāo)要快很多,但是想全都記住它們也是一件難事,我想記住它們最好的方法就是多多來練習(xí),確實把vim用在日常的文本編輯中去,且遇到難題不要放棄,而是查找解決的方法,每解決一個難題,你的vim技能就上升一級。

  其實, Vim與其它一個很大的區(qū)別在于, 它可以完成復(fù)雜的編輯與格式化功能. 在這些領(lǐng)域還少有軟件能與它分庭抗禮, 但是, 與所有的靈活性的代價一樣, 你需要用自己的雙手來實現(xiàn)它. 這在事實上造成了用戶在使用Vim過程中的幾個自然階段.

  一開始是notepad, word, edit壟斷你的大腦, 這些東西根深蒂固, 揮之不去Vim的使用對你而言是一場噩夢, 它降低而不是提高了你的工作效率. 對三種工作模式的不解甚至使你認(rèn)為它是一個充滿BUG或者至少是一個古怪的與當(dāng)今友好用戶界面設(shè)計嚴(yán)重脫節(jié)的軟件. 事實上, 這些起初看起來古怪的特性是Vim(或者是vi)的作者和它的用戶們在自己漫長的文字編輯和程序設(shè)計生涯中總結(jié)出來的最快速最實在的操作, 在幾乎等于計算機(jī)本身歷史的成長期中, 歷經(jīng)無數(shù)嚴(yán)厲苛刻的計算機(jī)用戶的批評與檢驗, 無用的特性或糟糕的設(shè)計在Vim用戶群面前根本就沒有生存的余地. Vim細(xì)心而謹(jǐn)慎的作者們也不允許自己精心設(shè)計的軟件里有這樣?xùn)|西.第二個階段你開始熟悉一些基本的操作, 這些操作足以應(yīng)付你日常的工作, 你使用這些操作時根本就不假思索. 但這些階段你仍然很少去碰Vim那晦澀的在線幫助文檔. 它在你心里只是notepad, edit一個勉強(qiáng)合格的替代品.

  第三個階段, 精益求精的你不滿足于無休無止的簡單操作, 冗長而乏味,有沒有更好的辦法可以四兩拔斤. 于是, 從UNIX參考手冊上, 從同事口中, 你漸漸叩開:help xxx的大門. 開始探索里面充滿魔力的咒語. 從雜耍般的帶有表演性質(zhì)的技巧開始, 這些技巧令人眩目但少有實用性. 不過這卻是你擁有魔力的第一步. 接下來, 你開始認(rèn)識到這些咒語背后的真經(jīng), 開始偷偷修改一些奇怪的符號, 于是, 奇跡產(chǎn)生了, 魔力不但仍然有效, 而且真實地作用于你現(xiàn)實中的文字編輯生活. 你在第二階段由于熟練操作而塵封已久的大腦突然開始運作. 但這個過程并非是達(dá)到某個臨界狀態(tài)后的一路坦途, 不斷的挫折, 新的挑戰(zhàn), 看似Mission Impossible的任務(wù).永遠(yuǎn)伴隨著任何一個人的任何一個過程. 這是你使用Vim的最后一個階段, 也是最漫長最有挑戰(zhàn)性同時也充滿無數(shù)奇趣的階段. 這個階段里你開始定制一些希奇古怪的顏色. 開始以敲入i18n來輸入internationalization, 開始讓Vim替你糾正經(jīng)常把the 誤敲成teh的毛病, 開始讓Vim與系統(tǒng)里各種精悍而強(qiáng)大的兄弟工具進(jìn)行合作, 開始寫越來越長的script, 每一次的文本編輯體驗都妙趣橫生高潮跌起. 你的頭腦因為要用Vim完成高效的編輯而高度緊張. 你開始在Vim郵件列表里提一些確實是問題的問題. 也開始發(fā)現(xiàn)你在Vim里做了以前在SHELL里做的幾乎一切事. 事實上你已經(jīng)成了一個無可救藥的Vim骨灰級玩家.

  高效率移動

  1、在插入模式之外

  基本上來說,你應(yīng)該盡可能少的呆在插入模式里面,因為在插入模式里面 就像一個“啞巴”編輯器一樣。很多新手都會一直呆在插入模式里面,因為這樣易于使用。但 的強(qiáng)大之處在于他的命令行模式!你會發(fā)現(xiàn),在你越來越了解 VIM 之后,你就會花越來越少的時間使用插入模式了。

  2、使用 h、j、k、l

  使用 VIM 高效率編輯的第一步,就是放棄使用箭頭鍵。使用 VIM,你就不用頻繁的在箭頭鍵和字母鍵之間移來移去了,這會節(jié)省你很多時間。當(dāng)你在命令模式時,你可以用 h、j、k、l 來分別實現(xiàn)左、下、上、右箭頭的功能。一開始可能需要適應(yīng)一下,但一旦習(xí)慣這種方式,你就會發(fā)現(xiàn)這樣操作的高效之處了。

  在你編輯你的電子郵件或者其他有段落的文本時,你可能會發(fā)現(xiàn)使用方向鍵和你預(yù)期的效果不一樣,有時候可能會一次跳過了很多行。這是因為你的段落在 VIM 看來是一個大的長長的行。這時你可以在按 h、j、k 或者 l 之前鍵入一個 g,這樣 VIM 就會按屏幕上面的行如你所愿的移動了。

  3、在當(dāng)前行里面有效的移動光標(biāo)

  很多編輯器只提供了簡單的命令來控制光標(biāo)的移動(比如左、上、右、下、到行首/尾等)。VIM 則提供了很多強(qiáng)大的命令來滿足你控制光標(biāo)的欲望。當(dāng)光標(biāo)從一點移動到另外一點,在這兩點之間的文本(包括這兩個點)稱作被“跨過”,這里的命令也被稱作是 motion。(簡單說明一下,后面會用到這個重要的概念)

  4、常用到的一些命令(motion)

  fx:移動光標(biāo)到當(dāng)前行的下一個 x 處。很明顯,x 可以是任意一個字母,而且你可以使用 ; 來重復(fù)你的上一個 f 命令。

  tx:和上面的命令類似,但是是移動到 x 的左邊一個位置。(這真的很有用)

  Fx:和 fx 類似,不過是往回找。

  w:光標(biāo)往前移動一個詞。

  b:光標(biāo)往后移動一個詞。

  0:移動光標(biāo)到當(dāng)前行首。

  ^:移動光標(biāo)到當(dāng)前行的第一個字母位置。

  $:移動光標(biāo)到行尾。

  ):移動光標(biāo)到下一個句子。

  ( :移動光標(biāo)到上一個句子。

  5、在整個文件里面有效移動光標(biāo)

  VIM 有很多命令,可以用來到達(dá)文件里面你想到達(dá)的地方。下面是一些在文件里面移動的命令:

  :向下移動一屏。

  :向上移動一屏。

  G:到文件尾

  numG:移動光標(biāo)到指定的行(num)。(比如 10G 就是到第 10 行)

  gg:到文件首

  H:移動光標(biāo)到屏幕上面

  M:移動光標(biāo)到屏幕中間

  L:移動光標(biāo)到屏幕下面

  *:讀取光標(biāo)處的字符串,并且移動光標(biāo)到它再次出現(xiàn)的地方。

  #:和上面的類似,但是是往反方向?qū)ふ摇?/p>

  /text:從當(dāng)前光標(biāo)處開始搜索字符串 text,并且到達(dá) text 出現(xiàn)的地方。必須使用回車來開始這個搜索命令。如果想重復(fù)上次的搜索的話,按 n。

  ?text:和上面類似,但是是反方向。

  ma:在當(dāng)前光標(biāo)的位置標(biāo)記一個書簽,名字為 a。書簽名只能是小寫字母。你看不見書簽的存在,但它確實已經(jīng)在那里了。

  `a:到書簽 a 處。注意這個不是單引號,它一般位于大部分鍵盤的 1 的左邊。

  `.:到你上次編輯文件的地方。這個命令很有用,而且你不用自己去標(biāo)記它。

  高效的輸入

  1、使用關(guān)鍵詞自動完成

  VIM 有一個非常漂亮的關(guān)鍵詞自動完成系統(tǒng)。這表示,你可以輸入一個長詞的一部分,然后按一下某個鍵,然后 VIM 就替你完成了這個長詞的輸入了。舉個例子:你有一個變量名為 iAmALongAndAwkwardVarName 在你寫的代碼的某個地方。也許你不想每回都自己一個一個字母的去輸入它。

  使用關(guān)鍵詞自動完成功能,你只需要輸入開始幾個字母(比如 iAmAL),然后按 (按住 Ctrl,再按 N)或者 。如果 VIM 沒有給出你想要的詞,繼續(xù)按,直到你滿意為止,VIM 會一直循環(huán)它找到的匹配的字符串。


上一頁 1 2 下一頁

關(guān)鍵詞: 學(xué)習(xí) 編輯器 VIM

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉