Vim插件

1.查看Vim版本

vim --version 输出中是否有+cscope支持cscope

2.安装

sudo apt-get install cscope

3.cscope介绍

1.到对应源码目录下

2.cscope --version

3.cscope -Rbkq
         这个命令会生成三个文件:cscope.out, cscope.in.out, cscope.po.out。
         其中cscope.out是基本的符号索引,后两个文件是使用”-q”选项生成的,可以加快cscope的索引速度。
上面所用到的命令参数,含义如下:
         -R: 在生成索引文件时,搜索子目录树中的代码
      -b: 只生成索引文件,不进入cscope的界面
      -k: 在生成索引文件时,不搜索/usr/include目录
      -q: 生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度

4.由于默认只支持c代码,执行
find . -name "*.java" -o -name "*.xml" > cscope.files
cscope -bkq -i cscope.file

5.为了启动Vim自动导入out文件,修改vimrc文件。通过whereis vim 找到安装路径eg:/usr/share/vim/vimrc
" 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>



6.tagList 插件
Taglist是以tags文件为基础,需要ctags生成tags文件。安装ctags,Redhat和CentOS可以执行yum install ctags,Debian和Ubantu可以执行apt-get install ctags
下载Taglist,地址是 http://www.vim.org/scripts/script.php?script_id=273
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的帮助信息


系统 vimrc 文件: "/usr/share/vim/vimrc"
用户 vimrc 文件: "$HOME/.vimrc" 或者“~/.vimrc”

"语法高亮
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窗口

7.
多个窗口切换
按住Ctrl + W,然后再加上h, j, k, l,分别表示向左、下、上、右移动窗口
Ctrl + w + h:向左移动窗口
Ctrl + w + j: 向下移动窗口
Ctrl + w + j: 向上移动窗口
Ctrl + w + l: 向右移动窗口

set hls                     "检索时高亮显示匹配项
set ic                       "检索时忽略大小写
set autoread                "文件在Vim之外修改过,自动重新读入

8.1winmanager

Note:让插件显示在右侧,但是winmanager里面没有此选项
usr/share/vim-scripts/plugin/winmanager.vim
在function! <SID>StartWindowsManager()函数中修改:
将:wincmd H 修改为wincmd L


8.2 nerdtree
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  "是否默认显示文件




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值