現(xiàn)在的工作是在unix平臺(tái),平時(shí)是用UE的ftp功能來(lái)寫(xiě)代碼的,有時(shí)候文件大了,傳輸就很慢,而且經(jīng)常不是很穩(wěn)定。
下定決心要學(xué)學(xué)Vim(現(xiàn)在應(yīng)該沒(méi)有人用原始的vi了吧),在經(jīng)過(guò)二周的使用后,發(fā)現(xiàn)Vim實(shí)在是非常不錯(cuò)的一個(gè)editor,現(xiàn)在我在Windows上也裝了一個(gè)Vim,使用起來(lái)頗為順手,基本上已經(jīng)替代了UE。

下面介紹一些我在使用Vim的過(guò)程中得到的一些心得:
1. 在使用Vim之前一定要進(jìn)行一些設(shè)置,否則你使用起來(lái)肯定會(huì)很不爽,下面是我的配置

?1 " ==============================================
?2 " ?General?settings
?3 " ==============================================
?4
?5 set?nocp
?6 set?ru
?7 " ?使用cindent
?8 set?cin
?9 set?cino = :0g0t0(sus
10
11 set?sm
12 set?ai
13 " ?縮近
14 set?sw=4
15 set?ts=4
16 " ?不展開(kāi)tab為空格,反之set?et
17 set?noet
18
19 set?lbr
20 set?hls
21 set?backspace = indent , eol , start
22 set?whichwrap = b , s , < , > , [ , ]
23 set?fo+ = mB
24 set?selectmode =
25 set?mousemodel = popup
26 set?keymodel =
27 set?selection = inclusive
28 set?matchpairs+ = <:>
29
30 " ==============================================
31 " ?Cursor?movement
32 " ==============================================
33 nnoremap?<Down>?gj
34 nnoremap?<Up>?gk
35 vnoremap?<Down>?gj
36 vnoremap?<Up>?gk
37 inoremap?<Down>?<C-o>gj
38 inoremap?<Up>?<C-o>gk
39
40 nnoremap?<End>?g$
41 nnoremap?<Home>?g0
42 vnoremap?<End>?g$
43 vnoremap?<Home>?g0
44 inoremap?<End>?<C-o>g$
45 inoremap?<Home>?<C-o>g0
46
47 nmap?<C-F4>?:confirm?bd<CR>
48 vmap?<C-F4>?<ESC>:confirm?bd<Enter>
49 omap?<C-F4>?<ESC>:confirm?bd<Enter>
50 map!?<C-F4>?<ESC>:confirm?bd<Enter>
51
52 " ?打開(kāi)語(yǔ)法高亮
53 syntax?on
54 " ?使用語(yǔ)法進(jìn)行折疊
55 set?foldmethod=syntax
56
57 if?(has( " gui_running " ))
58 ????set?nowrap
59 ????set?guioptions+=b
60 ????colo?inkpot
61 else
62 ????set?wrap
63 ????colo?ron
64 endif
65
66 " ?設(shè)置swap文件的目錄
67 set?dir = D:\vim\tmp
68 " 設(shè)置備份文件的目錄
69 set?backupdir=D:\vim\bak
70
71 " ?設(shè)置leader的快捷鍵,原來(lái)的“\”太遠(yuǎn)了,而且位置還不固定
72 let?mapleader = " , "

這里是一些基本設(shè)置
如果有什么不太清楚的,可以在Vim里normal模式下
:h 關(guān)鍵字
查看幫助

2. Vim教程
推薦先看看Vim自帶的Tutor(這可是位好老師)
用vimtutor啟動(dòng)Vim
或者在Vim里面用:h?tutor來(lái)啟動(dòng)
中文教程我推薦李果正的《大家來(lái)學(xué)Vim》
這里還有Vim的鍵位示意圖,可以打出來(lái)隨時(shí)查看哦

?
3. Vim的插件
有幾個(gè)插件強(qiáng)烈推薦
(1) A:在同名的cpp和h文件之間切換 http://www.vim.org/scripts/script.php?script_id=31
(2) NERD_comments:超強(qiáng)的注釋插件,支持很多語(yǔ)言的注釋風(fēng)格,按照上面的設(shè)置,只需要",cc"就可以添加注釋了 http://www.vim.org/scripts/script.php?script_id=1218
(3) csupport:寫(xiě)C/C++代碼必備 http://www.vim.org/scripts/script.php?script_id=213
(4) LargeFile:再也不用擔(dān)心打開(kāi)大文件會(huì)慢了 http://www.vim.org/scripts/script.php?script_id=1506
(5) TipOfTheDay:多讀讀vim的tips會(huì)有很多收獲的,記得要經(jīng)常更新tips文件啊 http://www.vim.org/scripts/script.php?script_id=88
(6) cppomnicomplete:提供C++中類(lèi)/對(duì)象成員的補(bǔ)全(需要Vim7) http://www.vim.org/scripts/script.php?script_id=1520
(7) ColorSamplerPack:提供上百種顏色主題,必有一款適合你,不過(guò)大多數(shù)都是在GUI下才有相應(yīng)的效果 http://www.vim.org/scripts/script.php?script_id=625
(8) vimcdoc:漢化的vim幫助 http://vimcdoc.sourceforge.net/

3. 在telnet中使用vim的顏色
如果是在linux中使用telnet,SecureCRT會(huì)自動(dòng)使用合適的顏色來(lái)顯示vim不同的顏色,但是如果在其他unix下就會(huì)無(wú)法顯示正確的顏色,所有的東西都是同一種顏色。

在.vimrc中加入(^[的輸入方式是Ctrl-v然后輸入Esc):
if !has("gui_running")
set t_Co=8
set t_Sf=^[[3%p1%dm
set t_Sb=^[[4%p1%dm
endif
并在SecureCRT的模擬終端類(lèi)型選擇ANSI,并鉤上ANSI Color,就可以顯示不同的顏色了

4. vim的自動(dòng)補(bǔ)全功能
一般使用Ctrl+n就可以自動(dòng)補(bǔ)全了,從Vim7后,C/C++的函數(shù)、變量或者是類(lèi)的成員,使用Ctrl+x,Ctrl+o也可以自動(dòng)補(bǔ)全。在安裝了cppomnicomplete后,對(duì)象的成員也可以用Ctrl+x,Ctrl+o來(lái)補(bǔ)全

5. 代碼折疊
許多editor都支持代碼折疊,Vim也不例外
常用的快捷鍵
zc 折疊代碼
zo 打開(kāi)折疊的代碼
還有其他的快捷鍵可以查看幫助
:h fold

6. 自動(dòng)格式化代碼
在Visual模式下,選中代碼按=就可以了
Normal模式下,按=會(huì)格式化光標(biāo)所在行

7. 腳本支持
Vim不僅有內(nèi)建的腳本功能,還支持Perl,Python,Tcl,Ruby和MzScheme這些流行的腳本語(yǔ)言編寫(xiě)Vim的擴(kuò)展

Vim的功能是不是很強(qiáng)大?
經(jīng)過(guò)1年多的測(cè)試Vim 7.0也release了,還不快下載來(lái)試試
http://www.vim.org

Happy Vimming!

對(duì)于已經(jīng)習(xí)慣了使用Vim但是要在Windows下編程的用戶(hù)
我還推薦
ViEmu,可以在VisualStudio下模擬Vi的編輯操作
不過(guò)只有30天的試用期