折腾了两天,终于好了

1。配置VIM

  (1)下载相关插件

  1. sudo apt-get install git
  2. sudo apt-get install build-essential cmake
  3.  
  4. sudo apt-get install libncurses5-dev libgnome2-dev libgnomeui-dev \
    libgtk2.0-dev libatk1.0-dev libbonoboui2-dev \
    libcairo2-dev libx11-dev libxpm-dev libxt-dev python-dev \
    python3-dev ruby-dev lua5.1 liblua5.1-dev libperl-dev git

   (2)安装支持python的VIM

  首先保证VIM已经卸载

  1. sudo apt-get remove vim vim-runtime gvim
  2. sudo apt-get remove vim-tiny vim-common vim-gui-common vim-nox

  然后下载并配置编译,注意路径和自己的匹配

  1. cd ~
  2. git clone https://github.com/vim/vim.git
  3. cd vim
  4. ./configure --with-features=huge \
  5. --enable-multibyte \
  6. --enable-rubyinterp=yes \
  7. --enable-pythoninterp=yes \
  8. --with-python-config-dir=/usr/lib/python2./config-x86_64-linux-gnu \
  9. --enable-python3interp=yes \
  10. --with-python3-config-dir=/usr/lib/python3./config-3.5m-x86_64_linux-gnu \
  11. --enable-perlinterp=yes \
  12. --enable-luainterp=yes \
  13. --enable-gui=gtk2 --enable-cscope --prefix=/usr
  14. make VIMRUNTIMEDIR=/usr/share/vim/vim81

  安装

  1. cd ~/vim
  2. sudo make install

  安装完后测试VIM是否支持python

    命令模式下输入:echo has("python") || has("python3"),结果是1就代表成功了。

     vim --version | grep python显示的python前面确实是加号。

2。安装VIM插件管理工具 pathogen

  1. mkdir -p ~/.vim/autoload ~/.vim/bundle &&
  2. curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim

  在.vimrc中添加

  1. execute pathogen#infect()
  2. syntax on
  3. filetype plugin indent on

  这时~/.vim的目录结构如下

  1. ├── autoload
  2. └── pathogen.vim
  3. └── bundle

  autoload存放的pathogen.vim是一个插件(插件的就是一个脚本),.vim中 execute pathogen#infect() 会调用 pathogen.vim,

  pathogen.vim会调用 bundle中的插件。

  我们接下来需要做的就是把需要安装的插件放到 bundle目录下。

3. 下载并安装YCM

  (1)下载YCM到bundle目录下

  1. git clone --recursive git://github.com/Valloric/YouCompleteMe ~/.vim/bundle

    如果执行该命令没报错, 就ok了. 但是中途有可能会断掉, 可以 cd 到 YouCompleteMe, 然后反复用如下命令再次进行下载:

  1. git submodule update --init --recursive

    YCM大概有229M

    使用如下命令查看YCM大小

  1. du -sh ~/.vim/bundle/YouCompleteMe

  (2)安装YCM

  1. ./install.py --clang-completer

  这个指令只适合64位系统,32位的需要自己下载clang并编译(很麻烦)。

4. 配置YCM

  .vimrc中输入

  1. " YouCompleteMe
  2. " Python Semantic Completion
  3. let g:ycm_python_binary_path = '/usr/bin/python3'
  4. " C family Completion Path
  5. let g:ycm_global_ycm_extra_conf='~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py'
  6. " 跳转快捷键
  7. nnoremap <c-k> :YcmCompleter GoToDeclaration<CR>|
  8. nnoremap <c-h> :YcmCompleter GoToDefinition<CR>|
  9. nnoremap <c-j> :YcmCompleter GoToDefinitionElseDeclaration<CR>|
  10. " 停止提示是否载入本地ycm_extra_conf文件
  11. let g:ycm_confirm_extra_conf =
  12. " 语法关键字补全
  13. let g:ycm_seed_identifiers_with_syntax =
  14. " 开启 YCM 基于标签引擎
  15. let g:ycm_collect_identifiers_from_tags_files =
  16. " 从第2个键入字符就开始罗列匹配项
  17. let g:ycm_min_num_of_chars_for_completion=
  18. " 在注释输入中也能补全
  19. let g:ycm_complete_in_comments =
  20. " 在字符串输入中也能补全
  21. let g:ycm_complete_in_strings =
  22. " 注释和字符串中的文字也会被收入补全
  23. let g:ycm_collect_identifiers_from_comments_and_strings =
  24. " 弹出列表时选择第1项的快捷键(默认为<TAB>和<Down>)
  25. let g:ycm_key_list_select_completion = ['<C-n>', '<Down>']
  26. " 弹出列表时选择前1项的快捷键(默认为<S-TAB>和<UP>)
  27. let g:ycm_key_list_previous_completion = ['<C-p>', '<Up>']
  28. " 主动补全, 默认为<C-Space>
  29. "let g:ycm_key_invoke_completion = ['<C-Space>']
  30. " 停止显示补全列表(防止列表影响视野), 可以按<C-Space>重新弹出
  31. "let g:ycm_key_list_stop_completion = ['<C-y>']

  注意这句:

  1. let g:ycm_global_ycm_extra_conf='~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py'

  这里需要创建 .ycm_extra_conf.py,并输入

  1. flags = [
  2. '-Wall',
  3. '-Wextra',
  4. '-Werror',
  5. '-Wno-long-long',
  6. '-Wno-variadic-macros',
  7. '-fexceptions',
  8. '-DNDEBUG',
  9. '-std=c99',
  10. '-x',
  11. 'c',
  12. '-I',
  13. '/usr/include',
  14. '-isystem',
  15. '/usr/lib/gcc/x86_64-linux-gnu/5/include',
  16. '-isystem',
  17. '/usr/include/x86_64-linux-gnu',
  18. '-isystem'
  19. '/usr/include/c++/5',
  20. '-isystem',
  21. '/usr/include/c++/5/bits'
  22. ]
  23. def FlagsForFile(filename):
  24. return {'flags': flags}

  到此 YCM 可用。

如果出现报错

  1. YouCompleteMe unavailable: unable to load Python.

安装

  1. sudo apt install vim-gtk

  此外.ycm_extra_conf.py很重要,可以参考这个文档:https://github.com/Valloric/YouCompleteMe#option-2-provide-the-flags-manually

参考博客:

https://www.cnblogs.com/Harley-Quinn/p/6418070.html

https://blog.csdn.net/andre617/article/details/53496490#%E8%84%9A%E6%B3%A8

https://github.com/Valloric/YouCompleteMe/issues/2901

VIM安装YCM插件的更多相关文章

  1. vim安装YouCompleteMe 插件

    要安装YouCompleteMe ,vim须支持python.看是否支持,可以在vim中:version 查看, 如果python前有+号,就是支持,减号就是不支持. 如果不支持,需要以编译安装方式重 ...

  2. UBuntu14.04 --vim安装YouCompleteMe插件

    说明 我电脑的系统参数(用 uname -a命令查看)如下: Linux avyn-Lenovo --generic #-Ubuntu SMP Tue Mar :: UTC i686 i686 i68 ...

  3. vim安装 YCM 过程记录

    YCM(YouComplateMe) 属于Vim中大神级的插件,提供了类似于巨硬爸爸的VS中的代码补全,但是其安装方式也是比较复杂,因此特意写下一篇记录,记录下我自己如何安装这一插件的过程: 检查自己 ...

  4. vim 安装vim-javascript插件--Vundle管理

    最近看了一下node.js,但是写的时候,vim对js没有很好的提示.于是就安装插件来处理,准备安装vim-javascript.但是安装github上面的插件时,推荐用Vundle和pathogen ...

  5. Vim安装ctags插件

    问题描述: 系统安装ctags插件 问题解决: (1)下载ctags插件 (2)新下载的ctags文件是一个tar包文件,使用tar -zxcf命令进行解压缩 注: 解压缩之后的 ctags文件,如上 ...

  6. Vim安装YouCompletMe插件。

    1.Centos7.0自带含有支持python2.x的vim.(:version 后看python+则支持,python-则不支持)若不支持,卸载vim后源码编译安装. yum install pyt ...

  7. mac 系统中vim安装ctags插件

    1,mac自带的ctags程序不是exuberant ctags, 所以使用时会出现问题,所以要重新安装一个: brew install exuberant ctags 安装完, which ctag ...

  8. Linux --- vim 安装、支持python3的配置、插件自动补全YCM的安装配置及全过程错误总结

    1.git(用来下载vim和相关插件) sudo apt-get install git 2,cmake(用来编译clang-llvm) sudo apt-get install build-esse ...

  9. gvim 安装YouCompleteMe插件

    可以参考:YouCompleteMe#full-installation-guide 可以直接下载: http://pan.baidu.com/s/1dDIq2Al 密码: si5q 确保vim支持p ...

随机推荐

  1. CSS透明度设置(兼容性)

    一句话搞定透明背景! .transparent_class { filter:alpha(opacity=50); -moz-opacity:0.5; -khtml-opacity: 0.5; opa ...

  2. ScrollView镶嵌listview显示不全的原因

    当ScrollView镶嵌listview会显示不全,通过查看ScrollView测量高度的源码,会发现ScrollView重写了父类viewGroup的measureChildWithMargins ...

  3. --disable-column-names,--skip-column-names,--column-names=0

    --disable-column-names,--skip-column-names,--column-names=0

  4. sharepoint2010的几个类型字段赋值和取值的方法

    1.日期类型查询,需要转换,方法如下: //转换时间 string startdate = SPUtility.CreateISO8601DateTimeFromSystemDateTime(Date ...

  5. html+javascript+soap获取webservice免费天气预报信息

    转自:http://blog.163.com/hubeimeiyu@126/blog/static/8004881020118303318687/ 首先,也是最重要的是互联网上免费的天气预报源:htt ...

  6. ASP.NET Core - 各项配置

    之前搭建好了各项开发环境,现在来说说ASP.NET Core的各项配置.项目结构.以及在请求管道中挂载的各式各样的中间件.今天先来探讨探讨其各项配置及其项目结构   ASP.NET Core和上一代F ...

  7. POJ - 1201 Intervals (最短路解线性规划)

    相交区间选尽量少的点是可以贪心的,右端点排序以后,尽量往右边放可以得到可以使得点在区间尽可能多. 但是我只想到了O(n)的维护方法.(数据比较水,能过... 或者是前缀和可以写sum(bi) - su ...

  8. object dection资源

    https://handong1587.github.io/deep_learning/2015/10/09/object-detection.html

  9. Win10远程桌面连接树莓派3时出现错误:由于安全设置

    http://blog.csdn.net/qq_33259138/article/details/52143407 在远程其树莓派时的电脑时提示错误“客户端无法建立与远程计算机的连接,远程计算机可能不 ...

  10. Win10预览版激活信息

    微软在10月2日零点正式公开了Win10预览版的下载地址,这个时间大家应该逐步开始安装工作了,因此提出下面两个问题的用户特别多,IT之家再稍作告知一下.1.Win10预览版安装密钥是什么?答:NKJF ...