Exercise: The Vim Editor

From ITRS
Jump to: navigation, search

Ed is for those who can *remember* what they are working on. If you are an idiot, you should use Emacs. If you are an Emacs, you should not be vi. If you use ED, you are on THE PATH TO REDEMPTION. THE SO-CALLED "VISUAL" EDITORS HAVE BEEN PLACED HERE BY ED TO TEMPT THE FAITHLESS. DO NOT GIVE IN!!! THE MIGHTY ED HAS SPOKEN!!!
-Patrick J. LoPresti, July 1991, during the editor war


VIM the editor

編輯器(Editor)是用來編輯文件用的。好的編輯器可以讓你寫程式事半功倍,清晰明瞭。當然,你還是能用最簡單的notepad編輯你的程式碼,只是比較不方便而已。

VIM(Vi IMprove)是一個強力的編輯器,繼承自unix時代的vi,有相當長的歷史。然而,其強大的快速鍵、Plug-in與Syntax Highlight獲得許多程式設計高手愛戴:奧林匹亞資訊競賽就選用VIM作為標準編輯器。

安裝VIM

Linux系統內已附帶vim,若你是windows使用者,見安裝vim

VIM tutor

vim內有一個教學軟體,請移動至你安裝vim的資料夾,執行vimtutor來開始學習。

模式切換

vim與一般編輯器最大不同,在於vim在不同的模式做不同的事情。也就是說,你不能在下命令時同時打字。略述常見的模式:

  • Normal

按<ESC>鍵就可以切換至Normal模式。在Normal模式下你可以下命令,使用各種快速鍵,刪改你的文件。以下說明中的快速鍵都是在Normal模式下。

  • Insert

在Normal模式下按 i 或 a 就可以進入Insert模式。在Insert模式下你可以輸入文章。

  • Visual

在Normal模式下按 v 就可以進入Visual模式。在Visual模式下你可以選取一個範圍。

游標移動 與 刪除

vim有一個好處就式進行任何編輯時手都不用離開鍵盤,如此可以加快編輯速度。在vim的Normal模式中可以利用 h(left) l(right) j(down) k(up)四個鍵來取代方向鍵。

在Normal模式下按 d 可刪除文字,用法如下。

  • dd : 刪除一行
  • dw : 刪除一字
  • d^ : 刪除至行首
  • d$ : 刪除至行尾。
  • d100d : 刪除100行
  • d3w : 刪除3個字
  • ggdG : 刪除整篇文章

如上所示,vim的快速鍵可以搭配次數(數字),範圍(^$w)使用。

複製 與 貼上

在Normal模式下按 y 可複製,用法如下:

  • yy : 複製一行
  • yw : 複製一字
  • y3w : 複製3字
  • ...規則同d

按 p 可以貼上(3p可以貼上3次)。特別的是,按刪除被刪掉的東西也可以被貼上(其實vim裡的刪除相當於 剪下)。

尋找、替換

按 :/ 可以搜尋文字。用法如下:

  •  :/itrs 搜尋itrs
  •  :/it?s 搜尋itXs,其中X可以是任何字
  •  :/itrs* 搜尋itrsXXXXX..,其中XXXXX可以是任何字串。

其實搜尋的規則大概合於regular expression正規表達式。

按:s/ 可以替換文字。用法如下:

  •  :s/old/new/ 把這一行第一個old換成new
  •  :s/old/new/g 把這一行所有的old換成new
  •  :%s/old/new/g 把這邊文章所有的old都換成new
  •  :123,456 s/old/new/g 把第123行至第456行的old都換成new

其實%的意思就是 第一行,最後一行

安裝ctag的話,可以用:!ctags -R * r將現在資料夾底下的程式碼建立索引。接下來即可使用 ctrl+] 查詢光標所在的函式實作。按 ctrl+t回原位。

叫檔、存檔、離開

  • 輸入 :e FILENAME 可以叫出 名為 FILENAME的檔案,其中FILENAME用你想開的檔名替換。
  • 輸入 :tabe FILENAME 可以叫出一個分頁開啟檔案。
  • 輸入 :w FILENAME可以存檔至FILENAME
  • 輸入 :w 可以存檔
  • 輸入 :up 可以在檔案有變動時才存檔
  • 輸入 :q 關閉文件
  • 輸入 :qa 關閉所有文件

自動補完

按 ctrl+n 可以自動補完程式碼。他會搜尋已存在的字串。

若有 安裝Omni Complete,按 Ctrl+c Ctrl+o (都要按)就可以自動補完資料結構等等。

快速鍵

在vimrc內可以使用map <KEY> xxx的方式來建立自訂的快捷鍵。關於vimrc打入 :h vimrc 學習相關資訊。 :h map 說明不同的map方法。

vimrc 範例

<block> </block>

from Beginer to Advance

1. Vim的效率和你的英文打字速度成正比。先練練英打。建議使用KP Typing Tutor 2. Bran Moore's Habit Using Vim 3. Regular Expression在取代東西的時候很有用,甚者,在Python裡還可以當作更強的scanf/printf參數(format string)。[1] 4. 記得超過20個指令。 5. 用hjkl移動 6. ci" 可以一次取代掉"xxxxxxx"裡面的東西。試試ca", ... 7. cfx 可以刪到那一行第一次出現x的地方。 f(forward) t(backward) 8. 學會用q錄micro

See Also

Comments

blog comments powered by Disqus