vim是一款非常強大的文字編輯軟件,是各種類UNIX系統標配的文本編輯工具。相信此文的讀者對它應該不會陌生,在這里就不做介紹了。
1.為什么要使用vim
在認識vim之前,我用過好多IDE:Visual Studio, Eclipse, C++ Builder,Source Insight, SlickEdit, Qt Creator等等,但我覺得這些東西都有這樣那樣的不足(Qt Creator不錯)。
在我看來,vim吸引我的地方主要有:
- 幾乎所有的類UNIX系統中都安裝了它,就算沒有vim也有vi;Windows上也有gVim
- 當登錄到字符模式的遠程類UNIX服務器時,可以使用它
- 代碼高亮、行號、縮進、括號配對等小細節
- 一切操作都可以通過鍵盤完成,熟練之后非常高效,完全擺脫鼠標
- 對屏幕、文本的精確控制
- 豐富的擴展性,無數的顏色主題和各種各樣的插件,還可以自己寫腳本
- 完美支持中文,不會出現SourceInsight等工具的某些小問題
- 免費,小巧,簡潔
當然,作為一款歷史悠久的軟件(1991年,vi更早),vim也不是沒有缺點,比如:
- 上手十分困難,需要長時間的練習
- 沒有Visual Studio, SlickEdit等許多IDE那種“一站式”功能,編碼調試畫界面生成類圖都有。。。
- 代碼提示,智能補全較弱(可以通過插件解決,后續文章介紹),查看符號之間的關系比較困難
是的,初學者學習vim會比較難(下面的圖是各種編輯器的學習曲線,感覺一下)。一開始可能連保存文件、復制粘貼這樣基本的功能都不知道怎么弄。但是請不要放棄,當你通過幾天(幾>7)熟練之后,你會對自己僅通過敲幾個鍵就能掌握文本屏幕而興奮不已。隨着時間的增長,vim會變的越來越好用,成為你離不開的伙伴。而它灌輸的哲學,甚至會影響你使用其他軟件的習慣,比如,越來越傾向於使用高效的快捷鍵了。

2.本系列文章的指導思想和一些約定
本系列文章是自己通過學習和使用vim的親身體驗,進行的一些總結。雖然現在我已經能比較熟練地使用vim,但所用的技巧比vim所提供的簡直是滄海一粟,還有很多奇妙的功能等着我去探索。
本系列文章的指導思想是盡量使用vim的默認配置,而不是復雜的配置和額外的插件。vim的擴展插件很多,也有很多奇技淫巧,但我只打算總結最常用的操作,以及最必需的插件,我認為簡潔是一種美。
vim的很多快捷鍵都是區分大小寫的,比如正常模式下的h和H:h是往光標往左移一個字符,而H是將光標移動到屏幕最上面一行。那么在介紹這兩個快捷鍵時,我只會寫h和H, 而不會寫h和shift+h。
為了突出重點,重要的、必須記住的操作用粗體表示。
3.學習之前的基本配置和幾個需要了解的基本操作
在學習vim前,先指定一些基本配置,了解幾個基本操作對學習過程會有幫助。類UNIX系統上當前用戶的vim配置文件的位置是~/.vimrc。這是一個隱藏文件。打開它進行編輯,加入以下內容:
" 設置字符編碼 set fileencoding=utf-8 set fileencodings=utf-8,gb2312,gb18030,latin1 set termencoding=utf-8 set encoding=utf-8 " 語法高亮 syntax on " 深色背景 color evening " 檢測文件類型 filetype on " 根據文件類型加載對應的插件 filetype plugin on " 顯示行號 set number " 在第64列顯示豎線 set cc=64 " 高亮顯示當前行 set cursorline " 設置各種縮進 set tabstop=4 set softtabstop=4 set shiftwidth=4 set autoindent set smartindent set cindent " tab轉換為空格 set expandtab " 將ESC鍵映射為兩次j鍵 inoremap jj <Esc> " 自動完成大括號 imap { {<CR>}<Esc>kA<CR>
什么?不知道怎么編輯?命令是這樣:
zzq@ubuntu14:~$ vim ~/.vimrc
或者,直接執行vim,啟動后輸入
:e ~/.vimrc
即冒號后跟字母e,在加上.vimrc文件的路徑。是的,e是編輯(Edit)的意思,冒號是vim“命令模式”的提示符。下一篇會說到 。
打開文件后,按 i 鍵進入編輯模式,輸入以上內容(也可以先用其他文本編輯器編好,然后復制、改名到~/.vimrc)。在輸入的過程中,可以使用方向鍵移動光標(也可以按<Esc>切換到正常模式使用h j k l四個鍵,分別是光標向左、下、上、右,移動后再按i進入編輯模式)。輸入完成后,按<Esc>鍵回到正常模式,然后輸入命令
:wq
保存並退出。w是寫入,q是退出。
搞完之后,隨便打開一個代碼文件,看看效果:

OK, 行號、代碼高亮、狀態提示、一行最大字符數限制。。。該有的都有了,還要啥呢?現在已經可以裝逼了:D
4.系列文章索引
