用Gvim建立IDE編程環境 (Windows篇)

原文:http://hi.baidu.com/leemoncc/item/8028dc6235154331ad3e8374


說明:本文是作者在完全按照著名的《手把手教你把Vim改裝成一個IDE編程環境》一文,在Windows XP上用gvim建立IDE環境時所作的備忘。
原作地址:http://blog.csdn.net/wooin/archive/2007/10/31/1858917.aspx


注意:_vimrc 在 類似於 C:\Users\Administrator\_vimrc 的用戶目錄下面


0.準備軟件及插件。
(a)gvim72.exe 地址。
(b)vimcdoc-1.7.0-setup.exe 地址http://prdownloads.sourceforge.net/vimcdoc/vimcdoc-1.7.0-setup.exe?download
(c)ec57w32.zip 地址http://prdownloads.sourceforge.net/ctags/ec57w32.zip
(d)taglist_45.zip 地址http://www.vim.org/scripts/download_script.php?src_id=7701
(e)winmanager.zip 地址http://www.vim.org/scripts/download_script.php?src_id=754
(f)minibufexpl.vim 地址http://www.vim.org/scripts/download_script.php?src_id=3640
(g)a.vim 地址http://www.vim.org/scripts/download_script.php?src_id=7218
(h)grep.vim 地址http://www.vim.org/scripts/download_script.php?src_id=7645
(i)visualmark.vim 地址http://www.vim.org/scripts/download_script.php?src_id=4700

1.安裝gvim7.2。
運行gvim72.exe,選擇完全安裝(Full),我的安裝目錄是默認的C:\Program Files\Vim。
安裝完成後,包括了文件夾vim72和文件夾vimfiles,以及腳本_vimrc。

2.安裝中文幫助手冊。
運行vimcdoc-1.7.0-setup.exe,它會自動找到gvim的安裝位置。
安裝完畢後重新打開gvim,:help 時幫助手冊已經是中文的了。
進行到這一步時,我的gvim菜單處的中文出現了亂碼。
在網上尋找解決方案,將C:\Program Files\Vim\vim72下名爲 lang 的文件夾刪去,使菜單語言變爲英語。

3.語法高亮。
首先,編輯_vimrc文件加入以下內容:
set nu!
colorscheme desert
syntax enable
syntax on
這些設置使得gvim可以顯示行號,並使用了desert配色方案,而且打開了語法高亮功能(用不同顏色顯示註釋、關鍵字、字符串等)。
我們還可以讓函數名也高亮起來,在C:\Program Files\Vim\vim72\syntax下找到 c.vim 和 cpp.vim,分別添加以下內容:
syn match cFunction "\<[a-zA-Z_][a-zA-Z_0-9]*\>[^()]*)("me=e-2
syn match cFunction "\<[a-zA-Z_][a-zA-Z_0-9]*\>\s*("me=e-1
hi cFunction gui=NONE guifg=#B5A1FF
重新打開gvim,效果如下:

4.程序中跳轉。
將ec57w32.zip解壓,在解壓後文件夾中找到ctags.exe,將其複製到C:\ProgramFiles\Vim\vim72下,並編輯_vimrc文件,添加以下內容:
set tags=tags;
set autochdir
打開cmd命令行,切換到你要查看的源代碼的根目錄處,運行
ctags -R
將會在此目錄處生成一個tags文件。
用gvim打開一個代碼文件,將光標放到某一函數名上,如下圖的UpdateViewByPosNo(),按下"ctrl+]",光標會自動跳轉到定義處。

按下"ctrl+T"會跳回到原來的位置。
變量、結構體、宏等等,都可以這樣做。
當你的源文件有更新時,只能重新運行ctags -R命令,來更新tags文件。

5.窗口管理。
將taglist_45.zip解壓,解壓後包含一個doc文件夾和一個plugin文件夾,將其中內容分別複製到C:\Program Files\Vim\vim72下的doc及plugin中。
在_vimrc文件中加入以下內容:
let Tlist_Show_One_File=1
let Tlist_Exit_OnlyWindow=1
用gvim打開代碼文件(已生成過tags文件),:Tlist,TagList窗口即出現在左側。
用相同的方法將winmanager.zip解壓和拷貝,在_vimrc文件中加入以下內容:
let g:winManagerWindowLayout='FileExplorer|TagList'
nmap wm :WMToggle<cr>
用gvim打開代碼文件,normal狀態下輸入命令"wm",窗口如下

其中左上是netrw窗口(瀏覽文件),左下是TagList窗口,再次輸入"wm"時這兩個窗口會關閉。

6.多文件編輯。
將minibufexpl.vim複製到C:\Program Files\Vim\vim72\plugin,在_vimrc中添加:
let g:miniBufExplMapCTabSwitchBufs=1
let g:miniBufExplMapWindowsNavVim=1
let g:miniBufExplMapWindowNavArrows=1
當用gvim打開兩個或兩個以上的文件時,會自動彈出MiniBufExplorer窗口,如下圖

ctrl+Tab,切換到前一個buffer,並在當前窗口打開文件;
ctrl+shift+Tab,切換到後一個buffer,並在當前窗口打開文件;
ctrl+箭頭鍵,可以切換到上下左右窗口中;
ctrl+h,j,k,l,切換到上下左右的窗口中。


7.快速切換頭文件/源文件。
將a.vim複製到C:\Program Files\Vim\vim72\plugin,在_vimrc中添加:
nnoremap <silent> <F12> :A<CR>
用gvim打開源碼文件後,按F12即可以在c/h文件中切換,也可以通過輸入:A實現。

8.在工程中快速查找。
將grep.vim複製到C:\Program Files\Vim\vim72\plugin,在_vimrc中添加:
nnoremap <silent> <F3> :Grep<CR>
用gvim打開源碼文件,並將光標定位到要查找的內容上,按下F3,確定要查找的內容和搜索範圍,gvim會在彈出的QuickFix窗口中列出所有符合條件的搜索結果。如下圖

確定查找內容時,支持正則表達式。

9.高亮的書籤。
將visualmark.vim複製到C:\Program Files\Vim\vim72\plugin。
用gvim打開源碼文件,將光標定位在需要添加書籤的地方,按下ctrl+F2,即添加了書籤。

使用F2在書籤之間正向切換,shift+F2反向切換。

10.解決中文亂碼。
set encoding=utf-8
set termencoding=utf-8
set fileencodings=utf-8,chinese,latin-1
if has("win32")
 set fileencoding=chinese
else
 set fileencoding=utf-8
endif
language messages zh_CN.utf-8


11 我的最終配置

set nocompatible
set backspace=indent,eol,start
set nu
set tabstop=4
set shiftwidth=4
set cindent
syntax enable
syntax on
set nobackup
set cursorline
"colorscheme desert 
colorscheme torte
syntax on
set ruler
set tags=tags;
set autochdir
set incsearch
set hlsearch
set guioptions-=m
set guioptions-=T
set autoread " 當文件在外部被修改時,自動重新讀取 
let $LANG = 'en'  "set message language  
set langmenu=en   "set menu's language of gvim. no spaces beside '='



vmap "+y " 選中狀態下 Ctrl+c 複製
noremap <C-S>        :update<CR>  
vnoremap <C-S>        <C-C>:update<CR>  
inoremap <C-S>        <C-O>:update<CR>
map <C-V>        "+gP
map <S-Insert>        "+gP
cmap <C-V>        <C-R>+  
cmap <S-Insert>        <C-R>+ 
exe 'inoremap <script> <C-V>' paste#paste_cmd['i']
exe 'vnoremap <script> <C-V>' paste#paste_cmd['v']
imap <S-Insert>		<C-V>
noremap <C-A> gggH<C-O>G
inoremap <C-A> <C-O>gg<C-O>gH<C-O>G
cnoremap <C-A> <C-C>gggH<C-O>G
onoremap <C-A> <C-C>gggH<C-O>G
snoremap <C-A> <C-C>gggH<C-O>G
xnoremap <C-A> <C-C>ggVG
vmap <S-Insert>		<C-V>
vnoremap <C-X> "+x
vnoremap <S-Del> "+x
vnoremap <C-C> "+y
vnoremap <C-Insert> "+y


" let Tlist_Show_One_File=1
" let Tlist_Exit_OnlyWindow=1
let Tlist_Auto_Open=0
let Tlist_Use_Horiz_Window=1
let g:winManagerWindowLayout='FileExplorer|TagList'
nmap wm :WMToggle<cr>
let g:miniBufExplMapCTabSwitchBufs=1
"let g:miniBufExplMapWindowsNavVim=1
"let g:miniBufExplMapWindowNavArrows=1
nnoremap <silent> <F12> :A<CR>
autocmd GUIEnter * simalt ~x
nnoremap <silent> <F3> :Grep<CR>

"Ctrl + \ "Open the definition in a new tab
"Alt + ] "Open the definition in a vertical split
map <C-\> :tab split<CR>:exec("tag ".expand("<cword>"))<CR>
map <A-]> :vsp <CR>:exec("tag ".expand("<cword>"))<CR>




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章