vim cscope taglist 使用
生活随笔
收集整理的這篇文章主要介紹了
vim cscope taglist 使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
From: http://blog.csdn.net/skywalkzf/article/details/5009329
一 . 安裝
apt-get install? exuberant-ctags? cscope global
cppcomplete 和 taglist 要到www.vim.org的擴展列表中下載
taglist 的下載地址:
http://www.vim.org/scripts/script.php?script_id=273
cppcomplete 的下載地址:
http://www.vim.org/scripts/script.php?script_id=527
然后在 建立目錄
代碼:
$HOME/.vim/plugin
將下載的cppcomplete.vim 和 taglist.vim拷貝到$HOME/.vim/plugin中。
安裝了global后,最新4.8.6 以上版本有帶vim的擴展,將它也拷貝到 $HOME/.vim/plugin
debian sid 版本global安裝后擴展文件在
代碼:
/usr/share/doc/global/examples/gtags.vim.gz
需要拷貝到$HOME/.vim/plugin后解壓,解壓方法:
代碼:
gzip -d? gtags.vim.gz
二 . 配置~/.vimrc
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
elseif $CSCOPE_DB != ""
? ?? ?? cs add $CSCOPE_DB
endif
set csverb
set cscopetag
"set cscopequickfix=s-,g-,d-,t-,e-,f-,i-
endif
三 . 載入與使用
cscope -R //載入數據庫
Ctl+D? ? //退出
Ctl+T? ? //文件中退出
find 選項 字符串
0 或 s: 查找 C 符號
1 或 g: 查找定義
2 或 d: 查找本函數調用的函數
3 或 c: 查找調用指定函數的函數
4 或 t: 查找字符串
6 或 e: 查找 egrep 模式
7 或 f: 查找文件
8 或 i: 查找包含指定文件的文件
四 . 和ctags配合使用:
載入ctags:? ? ctags -R *
4.將光標移到kmalloc 單詞上,
4.1 按"CTRL-/ s",將你帶入所有引用函數kmalloc的菜單,在當前窗口打開文件
4.2 按“CTRL-]”,將你帶入所有實現函數kmalloc的菜單,在當前窗口打開文件
4.3 按“CTRL-Space s”,將你帶入所有引用kmalloc的菜單,水平打開新窗口
4.4 按“CTRL-Space CTRL-Space s”,將你帶入所有引用kmalloc的菜單,垂直打開新窗口
4.5 下列是各鍵的含義
s --- symbol? ? 符號
g --- globals? ? 全局變量
c --- calls? ?? ???調用自己的
t --- text? ?? ?? ?文本引用
e --- egrep? ???做egrep 搜索
f --- file? ?? ?? ???打開在光標處的文件
i --- includes? ?查找include所在光標處文件名的文件
d --- called? ???查找本函數調用的所有函數實現
4.6 按“CTRL-T”返回上一級窗口
5. 除了使用熱鍵以外,也可以使用命令模式來查找
5.1 cs f s kmalloc
等價于CTRL-/ s
5.2 scs f s kmalloc
等價于CTRL-Space s
5.3 vert scs f s kmalloc
等價于CTRL-Space CTRL Space s
6. export CSCOPE_DB=~/cscope/cscope.out
這樣就可以在任意目錄下run “vi -t kmalloc”,而不會出現找不著DB的情況。
五 . vim的taglist插件使用方法
函數和變量的定義的即時瀏覽。這個是非常有用的功能。成千的變量,對于C/C++來說,一個類型錯誤都可能導致極難發現的問題,運行時出現無法預料的結果。vim里面使用taglist實現的。并且多個文件的列表都在一起,還可以按照類型折疊,以便于瀏覽。
taglist依賴于ctags,所以要先裝ctags,否則taglist裝了也沒法用!
#unzip taglist.zip -d ~/.vim
#cp doc/taglist.txt /usr/share/vim/vim70/doc/
#cp plugin/taglist.vim /usr/share/vim/vim70/plugin/
#cd /usr/share/vim/vim70/doc/
(注:vim70是我自己的vim版本號,每個人可能不同,自己更改一下)
然后打開sudo vim,shift+: ,進入vim的命令行,使用
: helptags??.
來配置幫助文檔
重啟vim,用“:TlistToggle”來打開和關閉taglist窗口。
可以用“:help taglist”來獲得更多幫助信息
下面講一下~/.vimrc配置文件的設置,下面是我自己的文件的設置
" 開啟語法高亮
syntax on
" 設置文字編碼自動識別
set fencs=utf-8,cp936
" 使用鼠標
set mouse=a
" 設置高亮搜索
set hlsearch
" 輸入字符串就顯示匹配點
set incsearch
" 輸入的命令顯示出來,看的清楚些。
set showcmd
" Tlist的內部變量。函數列表。
let Tlist_Use_Right_Window=1
let Tlist_File_Fold_Auto_Close=1
"函數和變量列表
map <F4> :TlistToggle<CR>
"全能補全
inoremap <F8> <C-x><C-o>
" 沒事,鼠標畫線玩的。
" noremap <F9> :call ToggleSketch()<CR>
set wildmenu
" 啟動函數變量快速瀏覽的時間設置
set updatetime=100
然后你就可以在你vim中使用taglist,此時只需要點擊F4來打開或者關閉!
經過充實我的~/.vimrc內容如下:
set hlsearch
set ai
syntax on
set number
set nocompatible
set columns=80
filetype on
set history=1000
set autoindent
set smartindent
set tabstop=4
set shiftwidth=4
set showmatch
set guioptions-=T
set vb t_vb=
set ruler
set nohls
set noexpandtab
set ignorecase
set mouse=a
set cindent
set incsearch
set fencs=utf-8,cp936
set showcmd
"Tlist的內部變量。函數列表。
let Tlist_Use_Right_Window=1
let Tlist_File_Fold_Auto_Close=1
" "函數和變量列表
map <F4> :TlistToggle<CR>
" "全能補全
inoremap <F8> <C-x><C-o>
" " 沒事,鼠標畫線玩的。
noremap <F9> :call ToggleSketch()<CR>
set wildmenu
" " 啟動函數變量快速瀏覽的時間設置
set updatetime=100
map <F2> :split<CR>
map <F3> :vsplit<CR>
map <F5> :q!<CR>
map <F6> :w!<CR>
map <F7> :wq!<CR>
autocmd FileType python set omnifunc=pythoncomplete#Complete
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
??????? "set cscopequickfix=s-,g-,d-,t-,e-,f-,i-
endif
總結
以上是生活随笔為你收集整理的vim cscope taglist 使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 初窥Servlet
- 下一篇: opengl与Directx的区别