VIM安装YCM插件
折腾了两天,终于好了
1。配置VIM
(1)下载相关插件
- sudo apt-get install git
- sudo apt-get install build-essential cmake
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已经卸载
- sudo apt-get remove vim vim-runtime gvim
- sudo apt-get remove vim-tiny vim-common vim-gui-common vim-nox
然后下载并配置编译,注意路径和自己的匹配
- cd ~
- git clone https://github.com/vim/vim.git
- cd vim
- ./configure --with-features=huge \
- --enable-multibyte \
- --enable-rubyinterp=yes \
- --enable-pythoninterp=yes \
- --with-python-config-dir=/usr/lib/python2./config-x86_64-linux-gnu \
- --enable-python3interp=yes \
- --with-python3-config-dir=/usr/lib/python3./config-3.5m-x86_64_linux-gnu \
- --enable-perlinterp=yes \
- --enable-luainterp=yes \
- --enable-gui=gtk2 --enable-cscope --prefix=/usr
- make VIMRUNTIMEDIR=/usr/share/vim/vim81
安装
- cd ~/vim
- sudo make install
安装完后测试VIM是否支持python
命令模式下输入:echo has("python") || has("python3"),结果是1就代表成功了。
vim --version | grep python显示的python前面确实是加号。
2。安装VIM插件管理工具 pathogen
- mkdir -p ~/.vim/autoload ~/.vim/bundle &&
- curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim
在.vimrc中添加
- execute pathogen#infect()
- syntax on
- filetype plugin indent on
这时~/.vim的目录结构如下
- ├── autoload
- │ └── pathogen.vim
- └── bundle
autoload存放的pathogen.vim是一个插件(插件的就是一个脚本),.vim中 execute pathogen#infect() 会调用 pathogen.vim,
pathogen.vim会调用 bundle中的插件。
我们接下来需要做的就是把需要安装的插件放到 bundle目录下。
3. 下载并安装YCM
(1)下载YCM到bundle目录下
- git clone --recursive git://github.com/Valloric/YouCompleteMe ~/.vim/bundle
如果执行该命令没报错, 就ok了. 但是中途有可能会断掉, 可以 cd 到 YouCompleteMe, 然后反复用如下命令再次进行下载:
- git submodule update --init --recursive
YCM大概有229M
使用如下命令查看YCM大小
- du -sh ~/.vim/bundle/YouCompleteMe
(2)安装YCM
- ./install.py --clang-completer
这个指令只适合64位系统,32位的需要自己下载clang并编译(很麻烦)。
4. 配置YCM
.vimrc中输入
- " YouCompleteMe
- " Python Semantic Completion
- let g:ycm_python_binary_path = '/usr/bin/python3'
- " C family Completion Path
- let g:ycm_global_ycm_extra_conf='~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py'
- " 跳转快捷键
- nnoremap <c-k> :YcmCompleter GoToDeclaration<CR>|
- nnoremap <c-h> :YcmCompleter GoToDefinition<CR>|
- nnoremap <c-j> :YcmCompleter GoToDefinitionElseDeclaration<CR>|
- " 停止提示是否载入本地ycm_extra_conf文件
- let g:ycm_confirm_extra_conf =
- " 语法关键字补全
- let g:ycm_seed_identifiers_with_syntax =
- " 开启 YCM 基于标签引擎
- let g:ycm_collect_identifiers_from_tags_files =
- " 从第2个键入字符就开始罗列匹配项
- let g:ycm_min_num_of_chars_for_completion=
- " 在注释输入中也能补全
- let g:ycm_complete_in_comments =
- " 在字符串输入中也能补全
- let g:ycm_complete_in_strings =
- " 注释和字符串中的文字也会被收入补全
- let g:ycm_collect_identifiers_from_comments_and_strings =
- " 弹出列表时选择第1项的快捷键(默认为<TAB>和<Down>)
- let g:ycm_key_list_select_completion = ['<C-n>', '<Down>']
- " 弹出列表时选择前1项的快捷键(默认为<S-TAB>和<UP>)
- let g:ycm_key_list_previous_completion = ['<C-p>', '<Up>']
- " 主动补全, 默认为<C-Space>
- "let g:ycm_key_invoke_completion = ['<C-Space>']
- " 停止显示补全列表(防止列表影响视野), 可以按<C-Space>重新弹出
- "let g:ycm_key_list_stop_completion = ['<C-y>']
注意这句:
- let g:ycm_global_ycm_extra_conf='~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py'
这里需要创建 .ycm_extra_conf.py,并输入
- flags = [
- '-Wall',
- '-Wextra',
- '-Werror',
- '-Wno-long-long',
- '-Wno-variadic-macros',
- '-fexceptions',
- '-DNDEBUG',
- '-std=c99',
- '-x',
- 'c',
- '-I',
- '/usr/include',
- '-isystem',
- '/usr/lib/gcc/x86_64-linux-gnu/5/include',
- '-isystem',
- '/usr/include/x86_64-linux-gnu',
- '-isystem'
- '/usr/include/c++/5',
- '-isystem',
- '/usr/include/c++/5/bits'
- ]
- def FlagsForFile(filename):
- return {'flags': flags}
到此 YCM 可用。
如果出现报错
- YouCompleteMe unavailable: unable to load Python.
安装
- 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插件的更多相关文章
- vim安装YouCompleteMe 插件
要安装YouCompleteMe ,vim须支持python.看是否支持,可以在vim中:version 查看, 如果python前有+号,就是支持,减号就是不支持. 如果不支持,需要以编译安装方式重 ...
- UBuntu14.04 --vim安装YouCompleteMe插件
说明 我电脑的系统参数(用 uname -a命令查看)如下: Linux avyn-Lenovo --generic #-Ubuntu SMP Tue Mar :: UTC i686 i686 i68 ...
- vim安装 YCM 过程记录
YCM(YouComplateMe) 属于Vim中大神级的插件,提供了类似于巨硬爸爸的VS中的代码补全,但是其安装方式也是比较复杂,因此特意写下一篇记录,记录下我自己如何安装这一插件的过程: 检查自己 ...
- vim 安装vim-javascript插件--Vundle管理
最近看了一下node.js,但是写的时候,vim对js没有很好的提示.于是就安装插件来处理,准备安装vim-javascript.但是安装github上面的插件时,推荐用Vundle和pathogen ...
- Vim安装ctags插件
问题描述: 系统安装ctags插件 问题解决: (1)下载ctags插件 (2)新下载的ctags文件是一个tar包文件,使用tar -zxcf命令进行解压缩 注: 解压缩之后的 ctags文件,如上 ...
- Vim安装YouCompletMe插件。
1.Centos7.0自带含有支持python2.x的vim.(:version 后看python+则支持,python-则不支持)若不支持,卸载vim后源码编译安装. yum install pyt ...
- mac 系统中vim安装ctags插件
1,mac自带的ctags程序不是exuberant ctags, 所以使用时会出现问题,所以要重新安装一个: brew install exuberant ctags 安装完, which ctag ...
- Linux --- vim 安装、支持python3的配置、插件自动补全YCM的安装配置及全过程错误总结
1.git(用来下载vim和相关插件) sudo apt-get install git 2,cmake(用来编译clang-llvm) sudo apt-get install build-esse ...
- gvim 安装YouCompleteMe插件
可以参考:YouCompleteMe#full-installation-guide 可以直接下载: http://pan.baidu.com/s/1dDIq2Al 密码: si5q 确保vim支持p ...
随机推荐
- CSS透明度设置(兼容性)
一句话搞定透明背景! .transparent_class { filter:alpha(opacity=50); -moz-opacity:0.5; -khtml-opacity: 0.5; opa ...
- ScrollView镶嵌listview显示不全的原因
当ScrollView镶嵌listview会显示不全,通过查看ScrollView测量高度的源码,会发现ScrollView重写了父类viewGroup的measureChildWithMargins ...
- --disable-column-names,--skip-column-names,--column-names=0
--disable-column-names,--skip-column-names,--column-names=0
- sharepoint2010的几个类型字段赋值和取值的方法
1.日期类型查询,需要转换,方法如下: //转换时间 string startdate = SPUtility.CreateISO8601DateTimeFromSystemDateTime(Date ...
- html+javascript+soap获取webservice免费天气预报信息
转自:http://blog.163.com/hubeimeiyu@126/blog/static/8004881020118303318687/ 首先,也是最重要的是互联网上免费的天气预报源:htt ...
- ASP.NET Core - 各项配置
之前搭建好了各项开发环境,现在来说说ASP.NET Core的各项配置.项目结构.以及在请求管道中挂载的各式各样的中间件.今天先来探讨探讨其各项配置及其项目结构 ASP.NET Core和上一代F ...
- POJ - 1201 Intervals (最短路解线性规划)
相交区间选尽量少的点是可以贪心的,右端点排序以后,尽量往右边放可以得到可以使得点在区间尽可能多. 但是我只想到了O(n)的维护方法.(数据比较水,能过... 或者是前缀和可以写sum(bi) - su ...
- object dection资源
https://handong1587.github.io/deep_learning/2015/10/09/object-detection.html
- Win10远程桌面连接树莓派3时出现错误:由于安全设置
http://blog.csdn.net/qq_33259138/article/details/52143407 在远程其树莓派时的电脑时提示错误“客户端无法建立与远程计算机的连接,远程计算机可能不 ...
- Win10预览版激活信息
微软在10月2日零点正式公开了Win10预览版的下载地址,这个时间大家应该逐步开始安装工作了,因此提出下面两个问题的用户特别多,IT之家再稍作告知一下.1.Win10预览版安装密钥是什么?答:NKJF ...