vim --version 输出中是否有+cscope支持cscope
sudo apt-get install cscope
find . -name "*.java" -o -name "*.xml" > cscope.files cscope -bkq -i cscope.file
" cscope setting """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" if has("cscope") set csprg=/usr/bin/cscope set csto=1 set cst set nocsverb set number set tabstop=4 set softtabstop=4 set shiftwidth=4 set expandtab set cino=g0,:0 "Ctrl+] Ctrl+t" set cscopetag set tags=tags;/ set cscopequickfix=s-,c-,d-,i-,t-,e- " add any database in current directory if filereadable("cscope.out") cs add cscope.out endif set csverb set cscopeverbose set foldenable set completeopt=preview,menu " taglist let Tlist_Show_One_File=1 "只显示当前文件的tags let Tlist_WinWidth=40 "设置taglist宽度 let Tlist_Exit_OnlyWindow=1 "tagList窗口是最后一个窗口,则退出Vim let Tlist_Use_Right_Window=1 "在Vim窗口右侧显示taglist窗口 let Tlist_Auto_Open=1 "默认打开Taglist let Tlist_Ctags_Cmd = '/usr/bin/ctags' 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> 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> nmap <C-n> :cnext<CR> nmap <C-p> :cprev<CR>
cp doc/taglist.txt /usr/share/vim/vim72/doc/ cp plugin/taglist.vim /usr/share/vim/vim72/plugin/
使用方法:
在源码目录下,执行ctags -R对各目录递归创建生成tags文件
用Vim打开源码文件,以命令模式执行Tlist,即可启用Taglist插件,<F1>可以查看taglist的帮助信息
"语法高亮 syntax on "显示行号 set number "自动缩进与C语言风格缩进 set autoindent set cindent "缩进宽度 set tabstop=4 set softtabstop=4 set shiftwidth=4 "建议开启expandtab选项,会自动将tab扩展很空格,代码缩进会更美观 set expandtab "set noexpandtab "switch case 对齐风格 set cino=g0,:0 " " taglist " let Tlist_Show_One_File=1 "只显示当前文件的tags let Tlist_WinWidth=40 "设置taglist宽度 let Tlist_Exit_OnlyWindow=1 "tagList窗口是最后一个窗口,则退出Vim let Tlist_Use_Right_Window=1 "在Vim窗口右侧显示taglist窗口
set hls "检索时高亮显示匹配项 set ic "检索时忽略大小写 set autoread "文件在Vim之外修改过,自动重新读入
wget http://www.vim.org/scripts/download_script.php?src_id=17123 -O nerdtree.zip unzip nerdtree.zip mkdir -p ~/.vim/{plugin,doc} cp plugin/NERD_tree.vim ~/.vim/plugin/ cp doc/NERD_tree.txt ~/.vim/doc/ 或者 cp plugin/NERD_tree.vim /usr/share/vim/vim74/plugin/ cp doc/NERD_tree.txt /usr/share/vim/vim74/doc/
ctrl + w + h 光标 focus 左侧树形目录 ctrl + w + l 光标 focus 右侧文件显示窗口 ctrl + w + w 光标自动在左右侧窗口切换 ctrl + w + r 移动当前窗口的布局位置 o 在已有窗口中打开文件、目录或书签,并跳到该窗口 go 在已有窗口 中打开文件、目录或书签,但不跳到该窗口 t 在新 Tab 中打开选中文件/书签,并跳到新 Tab T 在新 Tab 中打开选中文件/书签,但不跳到新 Tab i split 一个新窗口打开选中文件,并跳到该窗口 gi split 一个新窗口打开选中文件,但不跳到该窗口 s vsplit 一个新窗口打开选中文件,并跳到该窗口 gs vsplit 一个新 窗口打开选中文件,但不跳到该窗口 ! 执行当前文件 O 递归打开选中 结点下的所有目录 x 合拢选中结点的父目录 X 递归 合拢选中结点下的所有目录 e Edit the current dif 双击 相当于 NERDTree-o 中键 对文件相当于 NERDTree-i,对目录相当于 NERDTree-e D 删除当前书签 P 跳到根结点 p 跳到父结点 K 跳到当前目录下同级的第一个结点 J 跳到当前目录下同级的最后一个结点 k 跳到当前目录下同级的前一个结点 j 跳到当前目录下同级的后一个结点 C 将选中目录或选中文件的父目录设为根结点 u 将当前根结点的父目录设为根目录,并变成合拢原根结点 U 将当前根结点的父目录设为根目录,但保持展开原根结点 r 递归刷新选中目录 R 递归刷新根结点 m 显示文件系统菜单 cd 将 CWD 设为选中目录 I 切换是否显示隐藏文件 f 切换是否使用文件过滤器 F 切换是否显示文件 B 切换是否显示书签 q 关闭 NerdTree 窗口 ? 切换是否显示 Quick Help
" taglist let Tlist_Show_One_File=22 "只显示当前文件的tags let Tlist_WinWidth=30 "设置taglist宽度 let Tlist_Exit_OnlyWindow=1 "tagList窗口是最后一个窗口,则退出Vim "let Tlist_Use_Right_Window=1 "在Vim窗口右侧显示taglist窗口 let Tlist_File_Fold_Auto_Close=1 "让当前不被编辑的文件的方法列表自动折叠起来 let Tlist_Auto_Open=1 "默认打开Taglist let Tlist_Ctags_Cmd = '/usr/bin/ctags' let g:winManagerWindowLayout='FileExplorer' let g:AutoOpenWinManager=1 let NERDTreeWinPos="right" let NERDTreeShowBookmarks=1 autocmd VimEnter * NERDTree map :silent! NERDTreeToggle map <F8> :NERDTreeToggle<CR> imap <F8> <ESC>:NERDTreeToggle<CR> let NERDTreeDirArrows=1 "目录箭头 1 显示箭头 0传统+-|号 let NERDTreeShowLineNumbers=1 let NERDChristmasTree=1 let NERDTreeAutoCenter=1 "控制光标移动超过一定距离时,是否自动将焦点y调整到屏中心 let NERDTreeHighlightCursorline=1 "是否高亮显示光标所在行 let NERDTreeQuitOnOpen=0 let NERDTreeWinSize=30 let NERDTreeShowFiles=1 "是否默认显示文件