Linux下用Vim+cscope+ctags打造具有Source Insight便利性的IDE
阿新 • • 發佈:2019-02-17
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__);