是不是剛安裝上Ubuntu發現vim沒有語法高亮顯示、而別人的是頭文件、變量……都有特定的顏色表示而郁悶。是不是常常為編譯器提示某某某頭文件找不到和忘記了某個函數的原型而去翻磚頭那麼厚的書而煩惱,呵呵,這些都是小問題。這裡介紹一些小方法解決這些問題。
首先解決不能顯示語法高亮的問題:
可能你也知道去掉/etc/vim/vimrc文件中的“"syntax on “前面的雙引號就能開啟語法高亮,可是開了這個選項後,打開vim會有一些莫名的提示,這些都不要經我們升級一下vim就OK了升級方法可以是:
1、在終端下輸入 sudo apt-get install vim
2、下載下列軟件包安裝即可:
vim、vim-common、vim-runtime、vim-tiny
我現在用的版本7.1的
升級後在看看,發現vim不一樣了吧。是不是感覺眼前一亮!vim的使用很簡單,但是要用好了很不簡單,這個需要自己慢慢的摸索。
下面我們介紹集中查看頭文件,庫函數的方法:
1、最簡單的方法是安裝對應庫的man手冊,直接在終端man xxx(函數)如 man printf 就會看到pringf相關的信息,這種方法簡單而且顯示的信息很多,前提是你的英文必須過關!這種方法不是這裡的重點。
安裝一個最基本的文檔sudo apt-get install manpages-dev
2、這種方法可以讓你更了解頭文件或內核源碼的結構
(1)首先安裝一個工具Ctags:sudo apt-get install Ctags
讓後我們進入/usr/include或你的內核目錄進行如下操作:ctags -R *,這會在當前目錄下遞歸的為各個子目錄生成一個名為tags標簽文件,這個操作在第一次執行後即可。
現在在我們執行vim -t printf我們會看到我們進入了vim的編輯界面同時也到了printf聲明的地方。或直接進入vim編輯界面輸入:tag <函數名或宏等> 按TAB鍵可以進行模式匹配,繼續安TAB匹配下一個。
可是這樣查到的東西可能不是你想要的那一個,怎麼解決這個問題呢?
(2)解決上面問題需要安裝一個工具cscope:sudo apt-get install cscope
上面幾個工具單獨用功能不是很大,可是結合起來功能就非常強大了。我這裡有一個自己用的vim腳本,是拷的別人的功能不是很多但是已經夠用了。
在用戶目錄下新建一個.vimrc文件將下面內容添加到文件中:
set mouse=a
let Tlist_Use_Right_Window=1
let Tlist_File_Fold_Auto_Close=1
map <F4> :TlistToggle<CR>
noremap <F6> :make<CR>
noremap <S-F6> :make clean;make<CR>
noremap <F7> :Tlist<CR>
noremap <S-F7> :TlistSync<CR>
noremap <F3> :!./vitags.sh<CR>:cs reset<CR>
noremap <S-F3> :!cvs up<CR>
nnoremap <space> @=((foldclosed(line('.')) < 0) 'zc' : 'zo')<CR>
if has("multi_byte")
set encoding=utf-8
set fileencoding=chinese
set fileencodings=ucs-bom,utf-8,chinese
endif
set wrap
set hlsearch
filetype plugin on
colorscheme elflord
syntax on
set nocp
filetype plugin on
filetype indent on
if has("cscope")
set csprg=/usr/bin/cscope
set csto=0
set cst
set nocsverb
" add any database in current directory
if filereadable("cscope.out")
cs add cscope.out
" else add database pointed to by environment
elseif $CSCOPE_DB != ""
cs add $CSCOPE_DB
endif
set csverb
set cscopetag
endif
set nu
set ts=4
set sw=4
set ru
set hls
set is
set sm
set cin
set cino=:0g0t0(sus
set autoread " read open files again when changed outside Vim
set incsearch " use incremental search
set nowrap " do not wrap lines
set nobackup
set nowritebackup
map <C-F12> :!ctags -R --c-kinds=+p --fields=+iaS --extra=+q .<CR>
map <C-F11> :!ctags -R .<CR>
現在再試試vim -t <函數名或宏等>,這時如果有多個選項的話就會出現一個列表讓你選擇你需要的那個。
一個好用的工具可以讓你的工作效率大大提高,這裡只是介紹了一點點,希望大家補充,糾正錯誤。