2008年12月9日 星期二

VIM極速入門

○.本文講什麼不講什麼?VIM的命令紛繁是出了名的,面對官方文檔那一堆堆的命令,很容易讓新手望而卻步。本文旨在給VIM的新手介紹能夠舒服的 使用VIM所需掌握的最小概念和命令集。針對新手,只求實用不求術語準確。另外要發揮VIM強大的功能還需要修改配置文件,這是本文不涉及的內容。

一.如何啟動和退出VIM。方法很簡單,在命令行裡敲vim就可以看到vim的界面了。當然你肯定也想到了vim後面可以跟若干個文件名作為參數, 假如文件不存在程序就幫你新建一個。退出有點麻煩的,先按一下Esc鍵,然後鍵入「:q」就可以退出了。如果你一下子打開了好幾個文件,一個」:q」只能 關閉當前活動的文件,這時候也許你需要的是」qa」。當然假如你更改了一個文件沒有保存的話會提示你還有文件沒保存呢,現在不能退出,於是你得保存退出 「:wq」。當你建入的是」:wqa」的時候是什麼意思呢?猜猜看?另外告訴大家一個小秘密,其實」ZZ」也能管用,而且按起來很方便。


二.如何移動光標。忘掉什麼」hjkl」吧,你只是一個初學者,那些所謂的高手的假設對你來說都是不存在的,所以記住,要移動光標就用上下左右。當 然還有四個命令的性價比也很高,建議記住,就是」$」,」^」(移動到行尾和行首),」gg」,」G」(移動到文首和文尾)。另外這些命令是可以重複的, 比如2下,就是向下兩行。如果你發現2被輸入到文中了那麼請你按Esc後按u然後再試一試「2下」。是不是很爽,犯了錯誤反而學會一個新的命令u,有點類 似windows的Ctrl+z。如果你是程序員,那麼多教你一個,從一個括號快速跳轉到另外一個括號你可以在一個括號上按」%」。

三.如何編輯內容。要編輯文件你首先得進入編輯模式。按「i」就可進入編輯模式。在編輯模式下你可以像windows中那樣移動,輸入,刪除。直到 你按下Esc進入一開始的模式。「a」和「i」也差不多,就是要移動一下光標,新手其實完全可以當它不存在。不過「A」我覺得是一個非常有用的命令,我還 是菜鳥的時候一下子就記住了,它可以迅速到到行尾插入。其實假如你掌握了我前面所講的東西的話,「A」和」$a」或者」$i右」的效果是一樣的,其實和」 99999右a」的效果也是及其類似的。假如你有興趣去看幫助文件的話,你能找到一大堆關於代碼移動以及編輯的命令,老實說作為初學者,我沒講到的你可以 當它完全不存在。

四.如何複製粘貼。如何刪除內容本來應該在上一節講的,但是我覺得移過講比較好一點。在Windows中大家都很習慣」Ctrl+c」,」 Ctrl+v」,」Ctrl+x」等一系列的快捷鍵了,在VIM下稍微有點不一樣。首先你得知道如何選中一個區域。「v」就是選中當前位置,「V」是當前 行,「Ctrl+v」很是神奇,你試試就能夠體會到和「v」的區別了。無論你使用哪種方式,程序都會進入可視模式,此時你可以使用移動命令來改變被選中的 區域。選好一個塊要刪掉它,直接按「d」就可以了,要複製它有點麻煩要按「」+y」(加號需要輸入),剪切就是「」+x」(加號需要輸入)。複製的話你記 住「p」和「P」其中的一個就可以了。另外,你對一個區域「d」以後是可以直接「p」的。另外有一些性價比比較高的命令推薦大家記住。「dd」刪除一整 行,「ggVG」可以選中所有內容(就是gg-V-G了)。VIM這東西關鍵是要會靈活使用,比如你變成的時候想選中一對括號裡的內容,完全可以 「v%」。

五.如何管理窗口。「:sp filename」,「:vs filename」打開文件的時候會從當前的窗口上劃分出新的窗口。(不出現新的窗口可以使用」:e filename」打開。)在窗口中移動使用Ctrl+w+方向鍵。Ctrl-w-+,Ctrl-w-減,Ctrl-w-<,Ctrl- w->可以調整窗口分割的大小。新建窗口使用「Ctrl+w n」。關閉窗口使用「Ctrl+w q」,其實「:q」也行,但是內容還在內存裡(術語叫buffer),沒有真正的關掉,想要真正的關掉請使用「:bd」。有一個插件管理buferr很方 便,叫做minibufexpl,下載下來後拷貝到~/.vim/plugin/後重啟就可以了。(Windows用戶也一定可以在你的gvim安裝目錄找到plugin目錄的)關於這個插件更詳細的你可以查詢相關文檔。

六.如何進入Shell。這個功能很重要,寫完了代碼編譯要編譯一下的話,退出vim再編譯也不是不可以,但是假如我寫錯什麼想「u」的話就回天無力了。所以還是建議「:sh」進入shell執行操作,然後Ctrl-d可以退回vim來。

七.如何查找以及替換。這個不是三言兩語能夠夠說得清的。按Esc後按」/」加上你要搜索的文字就可以快速查找了,「n」轉向下一個,「N」是上一個。更複雜的」s」命令請使用「:h :s」查看幫助。

From:http://joyloft.net/?p=405

標籤: