Ubuntu下將VIM改造成IDE
首先我們安裝vim編輯器,可以選用直接
sudo apt-get install vim-gtk
安裝完成後,我們再來安裝插件ctags,該插件主要是用來tags文件是由ctags程序產生的一個索引文件, ctags程序其是叫"Exuberant Ctags", 是Unix上面ctags程序的替代品, 並且比它功能強大, 是大多數Linux發行版上默認的ctags程序. 那麼tags文件是做什麼用的呢? 如果你在讀程序時看了一個函數調用, 或者一個變量, 或者一個宏等等, 你想知道它們的定義在哪兒, 怎麼辦呢? 用grep? 那會搜出很多不相干的地方. 現在流行用是的<C-]>, 誰用誰知道呀, 當光標在某個函數或變量上時, 按下"Ctrl+]", 光標會自動跳轉到其定義處, 夠厲害吧, 你不用再羨慕Visual Studio的程序員了, 開始羨慕我吧~_~.
在這個網站: http://ctags.sourceforge.net, 下載一個類似 ctags-5.8.tar.gz 的文件下來:
用下面的命令解壓安裝:
$ tar -xzvf ctags-5.8.tar.gz
$ cd ctags-5.8
$ ./configure
$ make
$ sudo make install
安裝完畢。
然後就開始使用ctags僅需記住下面七條命令:(很簡單吧,呵呵)
1. $ ctags –R * ($ 為Linux系統Shell提示符)
2. $ vi –t tag (請把tag替換為您欲查找的變量或函數名)
3. :ts (ts 助記字:tags list, “:”開頭的命令為VI中命令行模式命令)
4. :tp (tp 助記字:tags preview)---此命令不常用,可以不用記
5. :tn (tn 助記字:tags next) ---此命令不常用,可以不用記
6. Ctrl + ]
7. Ctrl +T
對於第一條而言,我們在代碼的目錄下打開終端,或者用cd切換到該終端下,然後輸入$ctags -R,我們可以看到此時產生了一個tags文件,然後我們使用第二條命令比如輸入$vim -t main 它表示我們用vim打開該目錄下的main函數,接下來應該就能在終端看到main函數了,如果想要尋找某一個函數,或者變量,的定義,我們可以直接將光標移至該處,然後按下“Ctrl+]”,這樣就能直接跳到這個變量或函數定義的源文件中,並把光標定位到這一行。用“Ctrl+t”可以退回原來的地方。即使用戶使用了N次“Ctrl+]”查找了N個變量,按N次“Ctrl+t”也能回到最初打開的文件,它會按原路返回 。 ^_^
接下來我們來看看怎麼在ubuntu下手動設置vim,下面介紹一種常用的方法
首先我們可以在自己的主文件夾下,建立一個.vimrc文件,該文件是默認隱藏的,所以我們要用Chrl+H組合鍵來顯示它,然後就是在裡面設置自己的vim一些配置用法,如果說你也跟我一樣暫時只是vim看代碼方便,那麼我建議你設置一些基本的功能:用gedit .vimrc打開然後輸入:
set syntax=on
"配色方案
colorscheme torte
" 去掉輸入錯誤的提示聲音
set noeb
" 在處理未保存或只讀文件的時候,彈出確認
set confirm
" 自動縮進
set autoindent
set cindent
" 自動換行
set wrap
" 整詞換行
set linebreak
" Tab鍵的寬度
set tabstop=4
" 統一縮進為4
set softtabstop=4
set shiftwidth=4
" 不要用空格代替制表符
set noexpandtab
" 在行和段開始處使用制表符
set smarttab
" 顯示行號
set number
" 歷史記錄數
set history=1000
"禁止生成臨時文件
set nobackup
set noswapfile
"搜索忽略大小寫
set ignorecase
"搜索逐字符高亮
set hlsearch
set incsearch
"行內替換
set gdefault
"編碼設置
set enc=utf-8
set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
"語言設置
set helplang=cn
set encoding=utf8
set langmenu=zh_CN.UTF-8
set imcmdline
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
" 設置字體。
set guifont=Liberation\Mono\ 12
"set guifont=Fixedsys\Excelsior\3.01\ 14
let Tlist_Show_One_File = 1 "不同時顯示多個文件的tag,只顯示當前文件的
let Tlist_Exit_OnlyWindow = 1 "如果taglist窗口是最後一個窗口,則退出vim
let Tlist_Use_Right_Window = 1 "在右側窗口中顯示taglist窗口
let Tlist_Auto_open = 1 "如果你想在啟動VIM後,自動打開taglist窗口
然後保存。
接下來就是安裝taglist插件,注意taglist依賴於ctags,所以要先裝ctags,否則taglist裝了也沒法用!
到http://vim.sourceforge.net/scripts/download_script.php?src_id=6416該地址下去找到taglist的安裝包
然後解壓,這裡其實可以鼠標右鍵,看到有個命令選項,直接解壓到此處,點擊就行了,而不用裝B的去采用命令# unzip -d taglist taglist_42.zip
# cd taglist
來解壓。 之後我們輸入命令:
cp doc/taglist.txt /usr/share/vim/vim73/doc/
cp plugin/taglist.vim /usr/share/vim/vim73/plugin/
每個人的vim版本不同,所以你的可能是別的版本vim**,不一定是73。
這樣就完成了在源代碼處
jason@ubuntu:~/lidar/3530/working-copy$ vim 3dMapping_thread.cpp 打開源文件,然後輸入TlistOpen在右邊出現tag欄,右邊的窗口就是前面介紹的TagList窗口, 其中列出了main.c文件中的tag, 並且按照"typedef", "variable", "function"等進行了分類. 將光標移到VimMain上, 如圖中左邊紅色的方框, 按下回車後, 源程序會自動跳轉到VimMain的定義處, 如圖中右邊的紅色方框. 這就是TagList最基本也是最常用的操作. 再教你一個常用的操作, 你在浏覽TagList窗口時, 如果還不想讓源碼跳轉, 但是想看看tag在源碼中完整的表達, 可以將光標移到你想要看的tag上, 如圖中上邊黃色的方框, 然後按下空格鍵, 在下面的命令欄中, 如圖下邊黃色的方框, 會顯示該tag在源碼中完整的寫法, 而不會跳轉到源碼處.
輸入:q推出taglist,
輸入:TlistOpen在源代碼和tag之間切換。
接下來安裝WinManage插件顯示目錄
到http://www.vim.org/scripts/script.php?script_id=95下載插件,然後解壓,
然後;
sudo cp winmanager.txt /usr/share/vim/vim73/doc/
sudo cp winfileexplorer.vim /usr/share/vim/vim73/plugin/
sudo cp winmanager.vim /usr/share/vim/vim73/plugin/
sudo cp wintagexplorer.vim /usr/share/vim/vim73/plugin/
然後在.vimrc中輸入:
let g:winManagerWindowLayout='FileExplorer|TagList'
nmap wm :WMToggle<cr>
,搞定。
接下來試試效果:
jason@ubuntu:~$ vim 3dMapping_thread.cpp
然後正常模式按下wm,會看到左邊顯示兩個窗口,目錄和taglist。在按下wm就消失了,每次都是按entel鍵打開相應的函數或者目錄。:TlistOpen和:q之間切換。