注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

落叶清风L的博客

努力向前

 
 
 

日志

 
 
 
 

vim 插件YouCompleteMe 简单安装和使用  

2014-12-13 13:44:42|  分类: linux基础 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
        前几天一直在装这个插件,自己比较笨,思想比较局限。也是水的表现。 废话不多说了, 看看怎么装吧。
       
        其实网上到处都有相关文档, 为什么还要造轮子呢? 只是想攒下这个经历。
       
        YouCompleteMe 是GitHub上一位大神用C++完成的。很强大,可以支持很多语言,c,c++,java,php,c#,python ... ... , 还有路径,头文件补全等。简单效果截图:
       
vim 插件YouCompleteMe 简单安装和使用 - 萧然AND落叶清风L - 落叶清风L的博客
 
vim 插件YouCompleteMe 简单安装和使用 - 萧然AND落叶清风L - 落叶清风L的博客
 
vim 插件YouCompleteMe 简单安装和使用 - 萧然AND落叶清风L - 落叶清风L的博客

 
vim 插件YouCompleteMe 简单安装和使用 - 萧然AND落叶清风L - 落叶清风L的博客
语法查错:
vim 插件YouCompleteMe 简单安装和使用 - 萧然AND落叶清风L - 落叶清风L的博客
 

        安装其实很简单, 只不过确实需要一点时间,用Vundle管理插件,下载的时候真是龟速 , 我愣是等着几K每秒的速度等到下载完成。
        首先 , 你的机器需要装git , clang , vim(目前最好是7.4,需要支持python) ,cmake, llvm(一个编译器框架),Vundle .
        git 大家的源里应该都有的,没有的话换源,clang , vim ,cmake,llvm 源里都有的。 Vundle需要从github上download。我的发行版是fedora 20 。 

[tutu@localhost ~]$ sudo yum install git clang llvm vim cmake

        静静地等待安装完毕吧。之后, 我们再用git 下载Vundle 。

[tutu@localhost ~]$ git clone http://github.com/gmarik/vundle.git ~/.vim/bundle/vundle

       这样,需要的东西暂时就是这么多。 接下来就是安装插件了:
       修改你的家目录下的.vimrc (其实只是摘抄其它博客的), 如果没有自己新建一个 ,在里面添上这些:

set nu
set nocompatible
set noswapfile
syntax on
set backspace=2
set autoindent "自动对其应用到下一行
set tabstop=4 "tab 4
set shiftwidth =4 "换行自动缩进
set completeopt=menu
set rtp+=~/.vim/bundle/vundle
call vundle#rc()
"""""""""""""""""""Vundle
Bundle 'gmarik/vundle'
Bundle 'Valloric/YouCompleteMe'
Bundle 'Valloric/ListToggle'
Bundle 'scrooloose/syntastic' "语法检测插件


"""""""""""""""""""synatastic"""""""""""""""""""""
let g:syntastic_check_on_open = 1
let g:syntastic_cpp_include_dirs = ['/usr/include/']
let g:syntastic_cpp_remove_include_errors = 1
let g:syntastic_cpp_check_header = 1
let g:syntastic_cpp_compiler = 'clang++'
"set error or warning signs
let g:syntastic_error_symbol = 'x'
let g:syntastic_warning_symbol = '!'
"whether to show balloons
let g:syntastic_enable_balloons = 1
"""""""""""""""""""YCM""""""""""""""""""""""""""""
let g:ycm_global_ycm_extra_conf='~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py'
let g:ycm_seed_identifiers_with_syntax = 1 "开启关键字语法检测
let g:ycm_auto_trigger = 1 "自动触发补全
let g:ycm_semantic_triggers = { "触发条件
\ 'c' : ['->' , '.'],
\ 'cpp,objcpp' : ['->','.','::'], "这里可以参照文档自己写
\}
let g:ycm_confirm_extra_conf=0
let g:ycm_collect_identifiers_tags_files=1
let g:ycm_complete_in_comments=1
let g:ycm_complete_in_strings=1

filetype plugin indent on

        现在就可以安装相关插件了 : 在终端下输入 vim , 再键入:BundleInstall 之后vim 就自己会开始装插件了,其中YouCompleteMe 下载的很慢 , 耐心啊(如果实在不想等,自己在终端下下载吧,git clone 到指定目录就好了。)
vim 插件YouCompleteMe 简单安装和使用 - 萧然AND落叶清风L - 落叶清风L的博客
 
        等到,当前面由'>' 变成'+'时 , 表示这个插件已经安装了。
        之后就是一些简单的配置了 , 马上就成功了 :

我们现在要构建插件,使之可以使用,即要编译插件,这里我们使用自己的libclang.so 来链接 , 详细的参照YouCompleteMe下doc中文档内容 , 文档里说的很清晰。

[tutu@localhost ~]$ cd ~

[tutu@localhost ~]$ mkdir ycm_build

[tutu@localhost ~]$ cd ycm_build

[tutu@localhost ~]$ cmake -G "Unix Makefiles"  ~/.vim/bundle/YouCompleteMe/third_party/

ycmd/cpp -DEXTERNAL_LIBCLANG_PATH=/usr/lib64/llvm/libclang.so

[tutu@localhost ~]$ make ycm_core

[tutu@localhost ~]$ make ycm_support_libs

我这里的libclang.so 的路径是这样的,大家的自己找找 find命令

[tutu@localhost ~]$ sudo find / -iname 'libclang.so'

文档里也是建议大家使用自己的链接库。所以为了避免错误,还是使用自己的clang链接库。
最后一步了 , 简单修改一下配置文件.ycm_extra_conf.py

[tutu@localhost ~]$ vim ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra

_conf.py

在文件的开始位置  flags 中添加一项 :
'-isystem',
'/usr/include/c++/4.8.3',
vim 插件YouCompleteMe 简单安装和使用 - 萧然AND落叶清风L - 落叶清风L的博客
 这个路径是补全C++头文件的路径,大家找到自己的改一下路径就好了。

 简单的就能用了。 安装过程还是比较简单的,自己一开始没有将该装的装好,导致很多错误。
 
 好了 , 公欲善其事,先利其器吧。

                                                                                         原文链接:http://blog.csdn.net/unhappypeople/article/details/19160243
                                                                                         --- windleaves     14.12.13/13:44
  评论这张
 
阅读(279)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018