1. 程式人生 > >Linux下用Vim+cscope+ctags打造具有Source Insight便利性的IDE

Linux下用Vim+cscope+ctags打造具有Source Insight便利性的IDE

Vim簡單介紹:Linux/Unix下的文字編輯軟體。

使用Vim coding優勢:

1.無需滑鼠,全鍵盤操作。對於coding來說,可以雙手專注盲打coding,無需切換滑鼠導致分散注意力。

2.支援外掛,從而可以利用外掛,在Linux下將Vim打造成和SourceInsight一樣強大的程式碼閱讀器。

只需要學習簡單的Vim基本命令,配置常用的外掛,就可以把Vim打造成屬於自己的編輯利器!

效果圖如下,左邊是function、中間是正文、右邊是資料夾路徑。


只需要將其中的隱藏檔案扔到編譯網盤的根目錄下,執行shell:.generate_cscope_ctags.sh  自動生成cscope&ctags,就能正常使用!

.vimrc如下

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" VIM userinterface
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
syntax enable
syntax on
set nu
set tabstop=4
set softtabstop=4
set shiftwidth=4
set textwidth=80
"Highlight search things
set hlsearch
set incsearch
"show matching bracets
set showmatch
"Always show current position
set ruler
"Ignore case when searching
"set ignorecase
"Enable filetype plugin
filetype plugin on
filetype indent on
set completeopt=longest,menu
"Set to auto read when a file is changed from the outside
set autoread
"Have the mouse enabled all the time:
"set mouse=a
set cursorline
set laststatus=2
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Colors and Fonts
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
colorscheme desert
"colorscheme desert_my
"colorscheme murphy 
"colorscheme darkblue
set guifont=Courier\ New:h10
"set guifont=consolas

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Code fold 
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"set foldmarker={,}
"set foldmethod=marker
set foldmethod=syntax
set foldlevel=100       " Don't autofold anything (but I can still fold manually)
"set foldopen-=search   " don't open folds when you search into them
"set foldopen-=undo     " don't open folds when you undo stuff
"set foldcolumn=4

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Plugin configuration
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
""""""""""""""""""""""""""""""
" Taglist setting
""""""""""""""""""""""""""""""
let Tlist_Ctags_Cmd = '/usr/bin/ctags'
let Tlist_Show_One_File=1
let Tlist_Exit_OnlyWindow=1
"let Tlist_Use_Right_Window=1
let Tlist_Show_Menu=1
nmap tl :Tlist<cr>

""""""""""""""""""""""""""""""
" winmanager setting
""""""""""""""""""""""""""""""
let g:winManagerWindowLayout='BufExplorer,FileExplorer|Taglist'
"let g:winManagerWidth = 30
"let g:defaultExplorer = 0
"let g:netrw_winsize = 30
nmap wm :WMToggle<cr>

""""""""""""""""""""""""""""""
" miniBufExpl setting
""""""""""""""""""""""""""""""
let g:miniBufExplMapWindowNavArrows = 1
let g:miniBufExplMapCTabSwitchBufs = 1
nmap mb :TMiniBufExplorer<CR>

""""""""""""""""""""""""""""""
" mark setting
""""""""""""""""""""""""""""""
nmap <silent> <leader>hl <Plug>MarkSet
vmap <silent> <leader>hl <Plug>MarkSet
nmap <silent> <leader>hh <Plug>MarkClear
vmap <silent> <leader>hh <Plug>MarkClear
nmap <silent> <leader>hr <Plug>MarkRegex
vmap <silent> <leader>hr <Plug>MarkRegex

""""""""""""""""""""""""""""""
" Grep setting
""""""""""""""""""""""""""""""
nnoremap <silent> <F3> :Rgrep<CR>

""""""""""""""""""""""""""""""
" a.vim setting:change .c to .h in the same dir
""""""""""""""""""""""""""""""
nnoremap <silent> <F12> :A<CR>

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" ctags setting
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"set tags=~/source/tags
set tags=tags;

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" cscope setting
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set cscopequickfix=s-,c-,d-,i-,t-,e-
set nocscopeverbose
"cs add ~/source/cscope.out ~/source
if filereadable("cscope.out")
	cs add cscope.out . 
endif

nmap <C-\>s :cs find s <C-R>=expand("<cword>")<CR><CR>
nmap <C-\>g :cs find g <C-R>=expand("<cword>")<CR><CR>
nmap <C-\>c :cs find c <C-R>=expand("<cword>")<CR><CR>
nmap <C-\>t :cs find t <C-R>=expand("<cword>")<CR><CR>
nmap <C-\>e :cs find e <C-R>=expand("<cword>")<CR><CR>
nmap <C-\>f :cs find f <C-R>=expand("<cfile>")<CR><CR>
nmap <C-\>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
nmap <C-\>d :cs find d <C-R>=expand("<cword>")<CR><CR>

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Coding setting 
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
ab debug1 printf("@@@@@ %s %s line=%d\n",__FILE__,__func__,__LINE__);
ab debug2 printf("@@@@@ %s line=%d\n",__func__,__LINE__);