您的位置:網站首頁 > 電器維修資料網 > 正文 >
Vim文本編輯器的學習方法
來源: 日期:2013-11-2 20:37:29 人氣:標簽:
Vim是一個類似于Vi的文本編輯器,不過在Vi的基礎上增加了很多新的特性,Vim普遍被推崇為類Vi編輯器中 好的一個,事實上真正的勁敵來自Emacs的不同變體。
VIM學習方法
Vim目前已經有類Unix版和Windows版,盡管vim較vi已經改良了不少,但是初次使用還是會一頭霧水,不知如何操作,所以學習vim要首先過2關。第一關是理解vim的設計思路,vim設計之初就是整個文本編輯都用鍵盤而非鼠標來完成,鍵盤上幾乎每個鍵都有固定的用法,且vim的制作者希望用戶在普通模式(也就是命令模式,只可輸入命令)完成大部分的編輯工作,將此模式設計為默認模式,初學者打開vim,如果直接輸入單詞,結果就會滴滴亂響,這是因為vim把用戶輸入的單詞理解為命令了。第二關是命令關,vim有過百條命令對應編輯的需要,如果能熟練使用vim這些命令,編輯速度確實比鼠標要快很多,但是想全都記住它們也是一件難事,我想記住它們 好的方法就是多多來練習,確實把vim用在日常的文本編輯中去,且遇到難題不要放棄,而是查找解決的方法,每解決一個難題,你的vim技能就上升一級。
其實, Vim與其它編輯器一個很大的區別在于, 它可以完成復雜的編輯與格式化功能. 在這些領域還少有軟件能與它分庭抗禮, 但是, 與所有的靈活性的代價一樣, 你需要用自己的雙手來實現它. 這在事實上造成了用戶在使用Vim過程中的幾個自然階段.
一開始是notepad, word, edit壟斷你的大腦, 這些東西根深蒂固, 揮之不去Vim的使用對你而言是一場噩夢, 它降低而不是提高了你的工作效率. 對三種工作模式的不解甚至使你認為它是一個充滿BUG或者至少是一個古怪的與當今友好用戶界面設計嚴重脫節的軟件. 事實上, 這些起初看起來古怪的特性是Vim(或者是vi)的作者和它的用戶們在自己漫長的文字編輯和程序設計生涯中總結出來的 快速 實在的操作, 在幾乎等于計算機本身歷史的成長期中, 歷經無數嚴厲苛刻的計算機用戶的批評與檢驗, 無用的特性或糟糕的設計在Vim用戶群面前根本就沒有生存的余地. Vim細心而謹慎的作者們也不允許自己精心設計的軟件里有這樣東西.第二個階段你開始熟悉一些基本的操作, 這些操作足以應付你日常的工作, 你使用這些操作時根本就不假思索. 但這些階段你仍然很少去碰Vim那晦澀的在線幫助文檔. 它在你心里只是notepad, edit一個勉強合格的替代品.
第三個階段, 精益求精的你不滿足于無休無止的簡單操作, 冗長而乏味,有沒有更好的辦法可以四兩拔斤. 于是, 從UNIX參考手冊上, 從同事口中, 你漸漸叩開:help xxx的大門. 開始探索里面充滿魔力的咒語. 從雜耍般的帶有表演性質的技巧開始, 這些技巧令人眩目但少有實用性. 不過這卻是你擁有魔力的第一步. 接下來, 你開始認識到這些咒語背后的真經, 開始偷偷修改一些奇怪的符號, 于是, 奇跡產生了, 魔力不但仍然有效, 而且真實地作用于你現實中的文字編輯生活. 你在第二階段由于熟練操作而塵封已久的大腦突然開始運作. 但這個過程并非是達到某個臨界狀態后的一路坦途, 不斷的挫折, 新的挑戰, 看似Mission Impossible的任務.永遠伴隨著任何一個人的任何一個學習過程. 這是你使用Vim的 后一個階段, 也是 漫長 有挑戰性同時也充滿無數奇趣的階段. 這個階段里你開始定制一些希奇古怪的顏色. 開始以敲入i18n來輸入internationalization, 開始讓Vim替你糾正經常把the 誤敲成teh的毛病, 開始讓Vim與系統里各種精悍而強大的兄弟工具進行合作, 開始寫越來越長的script, 每一次的文本編輯體驗都妙趣橫生高潮跌起. 你的頭腦因為要用Vim完成高效的編輯而高度緊張. 你開始在Vim郵件列表里提一些確實是問題的問題. 也開始發現你在Vim里做了以前在SHELL里做的幾乎一切事. 事實上你已經成了一個無可救藥的Vim骨灰級玩家.
高效率移動
1、在插入模式之外
基本上來說,你應該盡可能少的呆在插入模式里面,因為在插入模式里面 VIM 就像一個“啞巴”編輯器一樣。很多新手都會一直呆在插入模式里面,因為這樣易于使用。但 VIM 的強大之處在于他的命令行模式!你會發現,在你越來越了解 VIM 之后,你就會花越來越少的時間使用插入模式了。
2、使用 h、j、k、l
使用 VIM 高效率編輯的第一步,就是放棄使用箭頭鍵。使用 VIM,你就不用頻繁的在箭頭鍵和字母鍵之間移來移去了,這會節省你很多時間。當你在命令模式時,你可以用 h、j、k、l 來分別實現左、下、上、右箭頭的功能。一開始可能需要適應一下,但一旦習慣這種方式,你就會發現這樣操作的高效之處了。
在你編輯你的電子郵件或者其他有段落的文本時,你可能會發現使用方向鍵和你預期的效果不一樣,有時候可能會一次跳過了很多行。這是因為你的段落在 VIM 看來是一個大的長長的行。這時你可以在按 h、j、k 或者 l 之前鍵入一個 g,這樣 VIM 就會按屏幕上面的行如你所愿的移動了。
3、在當前行里面有效的移動光標
很多編輯器只提供了簡單的命令來控制光標的移動(比如左、上、右、下、到行首/尾等)。VIM 則提供了很多強大的命令來滿足你控制光標的欲望。當光標從一點移動到另外一點,在這兩點之間的文本(包括這兩個點)稱作被“跨過”,這里的命令也被稱作是 motion。(簡單說明一下,后面會用到這個重要的概念)
4、常用到的一些命令(motion)
fx:移動光標到當前行的下一個 x 處。很明顯,x 可以是任意一個字母,而且你可以使用 ; 來重復你的上一個 f 命令。
tx:和上面的命令類似,但是是移動到 x 的左邊一個位置。(這真的很有用)
Fx:和 fx 類似,不過是往回找。
w:光標往前移動一個詞。
b:光標往后移動一個詞。
0:移動光標到當前行首。
^:移動光標到當前行的第一個字母位置。
$:移動光標到行尾。
):移動光標到下一個句子。
( :移動光標到上一個句子。
5、在整個文件里面有效移動光標
VIM 有很多命令,可以用來到達文件里面你想到達的地方。下面是一些在文件里面移動的命令:
:向下移動一屏。
:向上移動一屏。
G:到文件尾
numG:移動光標到指定的行(num)。(比如 10G 就是到第 10 行)
gg:到文件首
H:移動光標到屏幕上面
M:移動光標到屏幕中間
L:移動光標到屏幕下面
*:讀取光標處的字符串,并且移動光標到它再次出現的地方。
#:和上面的類似,但是是往反方向尋找。
/text:從當前光標處開始搜索字符串 text,并且到達 text 出現的地方。必須使用回車來開始這個搜索命令。如果想重復上次的搜索的話,按 n。
?text:和上面類似,但是是反方向。
ma:在當前光標的位置標記一個書簽,名字為 a。書簽名只能是小寫字母。你看不見書簽的存在,但它確實已經在那里了。
`a:到書簽 a 處。注意這個不是單引號,它一般位于大部分鍵盤的 1 的左邊。
`.:到你上次編輯文件的地方。這個命令很有用,而且你不用自己去標記它。
高效的輸入
1、使用關鍵詞自動完成
VIM 有一個非常漂亮的關鍵詞自動完成系統。這表示,你可以輸入一個長詞的一部分,然后按一下某個鍵,然后 VIM 就替你完成了這個長詞的輸入了。舉個例子:你有一個變量名為 iAmALongAndAwkwardVarName 在你寫的代碼的某個地方。也許你不想每回都自己一個一個字母的去輸入它。
使用關鍵詞自動完成功能,你只需要輸入開始幾個字母(比如 iAmAL),然后按 (按住 CTRl,再按 N)或者 。如果 VIM 沒有給出你想要的詞,繼續按,直到你滿意為止,VIM 會一直循環它找到的匹配的字符串。
- 1
- 2
- 下一頁
【看看這篇文章在百度的收錄情況】
相關文章
- 上一篇: Verilog HDL程序設計小經驗
- 下一篇: 開關電容變換器輸出電壓倍增的基本工作原理