MAC OS下vim配置

入手imac,零零碎碎花了几天时间,终于配置好了vim环境,记录下。

在MAC下,我用了MacVim,打开压缩包,里面有个mvim的脚本,运行后可以在命令行中调用MacVim。

使用插件:

pathogen,Taglist,NERD_tree,snipMate,nerocomplcache等~~~~

每个插件的具体配置就不说了,网上一般都有,主要写两个我配置中出现的问题

1、苹果默认ctags有点问题,需要自己重新下,自己编译或者用port或者homebrew安装都可以,我使用了homebrew。但是没有制定PATH或者做软链接的话,使用的还是MAC自带的ctags,我是用软链接实现。

2、pathogen。按照晚上说明,建立autoload目录,把pathogen.vim放在下面,在.vimrc中,添加

"pathogen 
call pathogen#runtime_append_all_bundles()
call pathogen#helptags()

记得要在filetype plugin indent on前(没搞清楚为啥)

然后建立bundle,在bundle下建立各个插件的目录,此时发现问题,部分插件能用,但是部分插件没效果,折腾了半天发现,例如我的minibuf插件是这么配置的。

把minibuf.vim放在~/.vim/bundle/minibuf下,这时,minibuf是无效的,对比了其他几个插件,我在~/.vim/bundle/minibuf下在建立个plugin目录,把minibuf.vim放在~/.vim/bundle/minibuf/plugin下,就可以了~~~


下面放上俺的vimrc

set nocompatible
syntax on
colorscheme desert
set guifont=Monaco:h16

"pathogen 
call pathogen#runtime_append_all_bundles()
call pathogen#helptags()

if has("autocmd")
    filetype plugin indent on "根据文件进行缩进
    augroup vimrcEx
        au!
        autocmd FileType text setlocal textwidth=78
        autocmd BufReadPost *
                    \ if line("'\"") > 1 && line("'\"") <= line("{1}quot;) |
                    \ exe "normal! g`\"" |
                    \ endif
    augroup END
else
    "智能缩进,相应的有cindent,官方说autoindent可以支持各种文件的缩进,但是效果会比只支持C/C++的cindent效果会差一点,但笔者并没有看出来
    set autoindent " always set autoindenting on 
endif " has("autocmd")
if(g:iswindows==1) "允许鼠标的使用
    "防止linux终端下无法拷贝
    if has('mouse')
        set mouse=a
    endif
    au GUIEnter * simalt ~x
endif
set nu
set incsearch
set hlsearch
map <F9> :call Do_CsTag()<CR>
nmap <C-@>s :cs find s <C-R>=expand("<cword>")<CR><CR>:copen<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>:copen<CR>
nmap <C-@>t :cs find t <C-R>=expand("<cword>")<CR><CR>:copen<CR>
nmap <C-@>e :cs find e <C-R>=expand("<cword>")<CR><CR>:copen<CR>
nmap <C-@>f :cs find f <C-R>=expand("<cfile>")<CR><CR>:copen<CR>
nmap <C-@>i :cs find i ^<C-R>=expand("<cfile>")<CR>{1}lt;CR>:copen<CR>
nmap <C-@>d :cs find d <C-R>=expand("<cword>")<CR><CR>:copen<CR>

function Do_CsTag()
    let dir = getcwd()
    if filereadable("tags")
	let tagsdeleted=delete("./"."tags")
        if(tagsdeleted!=0)
            echohl WarningMsg | echo "Fail to do tags! I cannot delete the tags" | echohl None
            return
        endif
    endif
    if has("cscope")
        silent! execute "cs kill -1"
    endif
    if filereadable("cscope.files")
        let csfilesdeleted=delete("./"."cscope.files")
        if(csfilesdeleted!=0)
            echohl WarningMsg | echo "Fail to do cscope! I cannot delete the cscope.files" | echohl None
            return
        endif
    endif
    if filereadable("cscope.out")
        let csoutdeleted=delete("./"."cscope.out")
        if(csoutdeleted!=0)
            echohl WarningMsg | echo "Fail to do cscope! I cannot delete the cscope.out" | echohl None
            return
        endif
    endif
    if(executable('ctags'))
        silent! execute "!ctags -R --c-types=+p --fields=+S *"
        "silent! execute "!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q ."
    endif
    if(executable('cscope') && has("cscope") )
        silent! execute "!dir /s/b *.c,*.cpp,*.h,*.java,*.cs >> cscope.files"
        silent! execute "!cscope -b"
        execute "normal :"
        if filereadable("cscope.out")
            execute "cs add cscope.out"
        endif
    endif
endfunction

"taglist
let Tlist_Show_One_File=1
let Tlist_Ctags_Cmd='ctags' "因为我们放在环境变量里,所以可以直接执行
let Tlist_Exit_OnlyWindow=1
let Tlist_Use_Right_Windos=0
let Tlist_File_Fold_Auto_Close=1 "非当前文件,函数列表折叠隐藏
let Tlist_Exit_OnlyWindow=1 "当taglist是最后一个分割窗口时,自动推出vim
map <F3> :silent! Tlist<CR>

"NERD_commenter
let NERDShutUp=1

"Doxygen
map fg : Dox<cr>
let g:DoxygenToolkit_authorName="dantezhu"
let g:DoxygenToolkit_licenseTag="My own license\<enter>"
let g:DoxygenToolkit_undocTag="DOXIGEN_SKIP_BLOCK"
let g:DoxygenToolkit_briefTag_pre = "@brief\t"
let g:DoxygenToolkit_paramTag_pre = "@param\t"
let g:DoxygenToolkit_returnTag = "@return\t"
let g:DoxygenToolkit_briefTag_funcName = "no"
let g:DoxygenToolkit_maxFunctionProtoLines = 30

"minibuf
let g:miniBufExplMapWindowNavVim = 1 "<C-jklh>切换
let g:miniBufExplMapCTabSwitchBufs = 1 "<C-Tab>切换窗口
let g:miniBufExplModSelTarget = 1


"neocomlcach
let g:acp_enableAtStartup = 0
" Use neocomplcache.
let g:neocomplcache_enable_at_startup = 1
" " Use smartcase.
let g:neocomplcache_enable_smart_case = 1
" " Use camel case completion.
let g:neocomplcache_enable_camel_case_completion = 1
" " Use underbar completion.
let g:neocomplcache_enable_underbar_completion = 1
" " Set minimum syntax keyword length.
let g:neocomplcache_min_syntax_length = 4
"turn off auto complete
let g:neocomplcache_disable_auto_complete = 1
"use supertab
let g:SuperTabDefaultCompletionType="context"

"NERD_tree
nmap <F4> :NERDTree  <CR>
let NERDTreeWinPos = "right" "where NERD tree window is placed on the screen

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
个人常用vim的IDE开发环境2015最新版。。 vim的快捷键和常用插件都已配好。。 支持cscope ctag,扩展工具栏,支持各类代码跳转查看。可以完全替代sourceinsight 支持自动编译输出窗口 支持代码符号定义快速预览窗口,需要生成完cscope数据库,按Fx键启用,具体哪个 忘了。。 = = 内置tab自动完成和提示,c/c++成员。声明提示。风格配色比较清新简洁。 字体采用courier new,space 4对齐 右边有buffer栏,函数符号栏, 可以按f2切换到文件树列表 f3 f4:大小写格式化 从F1 按到 f12 会有意外发现哦。。你可以一个个试过来。。哈哈。。 安装简单: 需要提前安装好 vim gvim/mvim cscope ctag 然后解压在当前目录 执行 install 就行了。。 windows下安装只需要吧 windows目录下的文件覆盖过去就好 macosx上是 mvim 哦。。 sourceinsight的代码查看功能启用,按下工具栏某个生成符号数据库的图标,就行了,各类跳转和搜索都有图标,快速使用。 注意:gvimvim 必须在源码目录下打开才行,他只会查找当前目录下的所有代码来生成。。 安装完 右击代码文件 系统右键菜单有个script菜单项 的gvim 可以在当前目录下打开代码文件。。 打开一个就可以管理整个工程了。。其他的文件拖进来。。 或者通过f2的目录树访问。。 还有隐藏插件 需要自己按快捷键启用 自己摸索吧。。 比如 文件搜素 图表绘制 matrix动画 。。。 一些集成好的常用插件: 1. tabbar符号列表 2. buffer当前打开文件列表 3. 文件树列表 4. cscope, ctags集成,可进行符号跳转,引用跳转,头文件跳转等。。 5. autotab自动补全 6. c/c++符号提示 7. 静态语法检测 8. 快速翻译 9. 注释绘图 10. 还有好多其他的,暂时想不起来的。。自己摸索吧。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值