學習Vim的一點心得

來源:互聯網
上載者:User

現在的工作是在unix平台,平時是用UE的ftp功能來寫代碼的,有時候檔案大了,傳輸就很慢,而且經常不是很穩定。
下定決心要學學Vim(現在應該沒有人用原始的vi了吧),在經過二周的使用後,發現Vim實在是非常不錯的一個editor,現在我在Windows上也裝了一個Vim,使用起來頗為順手,基本上已經替代了UE。

下面介紹一些我在使用Vim的過程中得到的一些心得:
1. 在使用Vim之前一定要進行一些設定,否則你使用起來肯定會很不爽,下面是我的配置

 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 "  不展開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 "  開啟文法高亮
53 syntax on
54 "  使用文法進行摺疊
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 "  設定swap檔案的目錄
67 set dir = D:"vim"tmp
68 " 設定備份檔案的目錄
69 set backupdir=D:"vim"bak
70
71 "  設定leader的快速鍵,原來的“"”太遠了,而且位置還不固定
72 let mapleader = " , "

這裡是一些基本設定
如果有什麼不太清楚的,可以在Vim裡normal模式下
:h 關鍵字
查看協助

2. Vim教程
推薦先看看Vim內建的Tutor(這可是位好老師)
用vimtutor啟動Vim
或者在Vim裡面用:h tutor來啟動
中文教程我推薦李果正的《大家來學Vim》
這裡還有Vim的鍵位,可以打出來隨時查看哦

 
3. Vim的外掛程式
有幾個外掛程式強烈推薦
(1) A:在同名的cpp和h檔案之間切換 http://www.vim.org/scripts/script.php?script_id=31
(2) NERD_comments:超強的注釋外掛程式,支援很多語言的注釋風格,按照上面的設定,只需要",cc"就可以添加註釋了 http://www.vim.org/scripts/script.php?script_id=1218
(3) csupport:寫C/C++代碼必備 http://www.vim.org/scripts/script.php?script_id=213
(4) LargeFile:再也不用擔心開啟大檔案會慢了 http://www.vim.org/scripts/script.php?script_id=1506
(5) TipOfTheDay:多讀讀vim的tips會有很多收穫的,記得要經常更新tips檔案啊 http://www.vim.org/scripts/script.php?script_id=88
(6) cppomnicomplete:提供C++中類/對象成員的補全(需要Vim7) http://www.vim.org/scripts/script.php?script_id=1520
(7) ColorSamplerPack:提供上百種顏色主題,必有一款適合你,不過大多數都是在GUI下才有相應的效果 http://www.vim.org/scripts/script.php?script_id=625
(8) vimcdoc:漢化的vim協助 http://vimcdoc.sourceforge.net/

3. 在telnet中使用vim的顏色
如果是在linux中使用telnet,SecureCRT會自動使用合適的顏色來顯示vim不同的顏色,但是如果在其他unix下就會無法顯示正確的顏色,所有的東西都是同一種顏色。

在.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的類比終端類型選擇ANSI,並鉤上ANSI Color,就可以顯示不同的顏色了

4. vim的自動補全功能
一般使用Ctrl+n就可以自動補全了,從Vim7後,C/C++的函數、變數或者是類的成員,使用Ctrl+x,Ctrl+o也可以自動補全。在安裝了cppomnicomplete後,對象的成員也可以用Ctrl+x,Ctrl+o來補全

5. 程式碼摺疊功能
許多editor都支援程式碼摺疊功能,Vim也不例外
常用的快速鍵
zc 摺疊代碼
zo 開啟摺疊的代碼
還有其他的快速鍵可以查看協助
:h fold

6. 自動格式化代碼
在Visual模式下,選中代碼按=就可以了
Normal模式下,按=會格式化游標所在行

7. 指令碼支援
Vim不僅有內建的指令碼功能,還支援Perl,Python,Tcl,Ruby和MzScheme這些流行的指令碼語言編寫Vim的擴充

Vim的功能是不是很強大?
經過1年多的測試Vim 7.0也release了,還不快下載來試試
http://www.vim.org

Happy Vimming!

對於已經習慣了使用Vim但是要在Windows下編程的使用者
我還推薦
ViEmu,可以在VisualStudio下類比Vi的編輯操作
不過只有30天的試用期

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.