我的vim配置[ ctags + cscope + omni == 多图、强大、详解 ]

引用请注明出处:http://blog.csdn.net/int64ago/article/details/7273108

  • 本文不指导你如何使用vim,初学者可以参考此教程,非常适合入门!
  • 一般linux发行版都安装vim了,如果没有不知道有没有安装就直接安装:sudo yum install vim
  • 下载vim_bak.tar.gz到~/Downloads目录,执行:cd ~Downloads;tar -xvf vim_bak_tar.gz;mv vim ~/.vim;mv vimrc ~/.vimrc
  • 安装插件ctags、cscope:sudo yum install ctags cscope,待会就看到有什么用了
  • vi .vimrc,根据需要修改配置文件,如果平时用的最多的是c/c++编程,那么这些基本上用我已经配置好的就足够了
  • 下面我简单解释下配置文件:
  • "去点有关vi一致性模式,避免以前版本的一些bug和局限
    set nocompatible
    
    "显示行号
    "set number
    
    "检测文件的类型
    filetype on
    
    "记录历史的行数
    set history=1000
    
    "背景使用黑色
    set background=dark
    
    "语法高亮显示
    syntax on
    
    "自动对齐
    set autoindent
    set cindent
    
    "智能选择对齐方式
    set smartindent
    
    "tab为4个空格
    set tabstop=4
    
    "当前行之间交错时使用4个空格
    set shiftwidth=4
    
    "设置匹配模式,输入做括号会出现右括号
    ""set showmatch
    
    "去掉vim的toolbar
    "set guioptions=T
    
    "去掉警告声音
    set vb t_vb=
    
    "编辑时显示光标状态
    set ruler
    
    "快速匹配
    set incsearch
    
    "修改文件自动备份
    if has("vms")
    	set nobackup
    else
    	set backup
    endif
    
    """""启动设置窗口大小
    map <F2> :set lines =35 columns =110<CR>
    
    """""""""""""设置开启ctags"""""""""""""
    set tags=tags;
    set autochdir
    
    """"""""""""""omni自动补全"""""""""""""
    set nocp
    filetype plugin indent on
    map <C-F12> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR><CR>
    set completeopt=menu
    set tags+=~/.vim/MyTags/stltags
    
    :inoremap ( ()<ESC>i
    :inoremap ) <c-r>=ClosePair(')')<CR>
    :inoremap { {}<ESC>i
    :inoremap } <c-r>=ClosePair('}')<CR>
    :inoremap [ []<ESC>i
    :inoremap ] <c-r>=ClosePair(']')<CR>
    :inoremap < <><ESC>i
    :inoremap > <c-r>=ClosePair('>')<CR>
    :inoremap " ""<ESC>i
    :inoremap ' ''<ESC>i
    
    function ClosePair(char)
    if getline('.')[col('.') - 1] == a:char
            return "\<Right>"
    else
    return a:char
    endif
    endf
    
    """""""""""""""""Taglist设置"""""""""""""""""      
    ""let Tlist_Auto_Open = 1           
    let Tlist_Ctags_Cmd = '/usr/bin/ctags' 
    let Tlist_Show_One_File = 1    
    let Tlist_Exit_OnlyWindow = 1    
    
    """""""""""""""""winManager设置,整合各个窗口""""""""""""""""
    ""let g:AutoOpenWinManager = 1
    let g:winManagerWidth = 35
    let g:winManagerWindowLayout='BufExplorer,FileExplorer|TagList'
    map <F3> :WMToggle<CR>
    
    """"""""""""""""""""""cscope设置""""""""""""""""""
    set cscopequickfix=s-,c-,d-,i-,t-,e-
    if has("cscope")
    set csprg=/usr/bin/cscope
    set csto=1
    set cst
    set nocsverb
    " add any database in current directory
    if filereadable("cscope.out")
    cs add cscope.out
    endif
    set csverb
    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>{1}lt;CR>
    nmap <C-/>d :cs find d <C-R>=expand("<cword>")<CR><CR> 
  • 基本上都加了注释,其中set number 是显示行号,我没启用,如果你需要可以启用;还有set tags+=~/.vim/MyTags/stltags这句的作用是加入stl自动补全,构建的过程可以参考这篇文章vim omni STL自动补全,不过你已经不用管了,因为我已经构建好了;map <F3> :WMToggle<CR>和map <F2> :set lines =35 columns =110<CR>这两句我设置了快捷键,作用如下:
  •             上图是刚启动时的样子             按了F3之后就可以看到左边多了两个目录栏,这个对程序员来说是非常有用的,具体怎么用网上资料很多上图是我按了F2之后的样子,因为按了F3之后很多被挡住了,F2的作用看配置文件都能知道,就是调整界面大小
  • 好了,下面顺便演示下,智能补全的用法,我分四种情况:
  • 1、前面申明过的变量或者函数名的补全;2、结构体等自建结构的补全;3、STL等标准库的补全;4、括号、引号等自动匹配补全。
  • 对于第一种情况,写程序的过程中,直接用CTRL+p即可选择,对于第二种情况,如果想申明了结构体T,想在输入T.时弹出成员供选择,只需在用之前按一下:CTRL+F12,然后效果如图:对于第三种情况,直接用就可以了,我前面说了,我已经构建好了,效果如图:对于最后的括号、引号等补全,可以匹配的种类参考配置文件,要说明的是,不但可以输入匹配,删除左符号时又符号也会成对的被删除,当然要看情况,自己试试就知道了,其它还有很多功能就不说了吧,多试试,多查阅资料。
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值