VIM安装YCM插件
折腾了两天,终于好了
1。配置VIM
(1)下载相关插件
sudo apt-get install git
sudo apt-get install build-essential cmakesudoapt-getinstalllibncurses5-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 ...
随机推荐
- 栅格那点儿事(四D)
统计值与空值 在上一篇的内容里反复提到了一个统计值.那这个统计值是怎么来的,具体是干嘛用的呢? 统计值主要就是用于栅格数据的显示和重分类,顾名思义就是一个波段中所有像元值的一个统计信息,最大值,最小值 ...
- Eclipse Infrastructure
Everything is plug-ins running on or loaded by plug-ins loader called by a small kernal which is an ...
- Java—继承
继承 继承是类与类的一种关系,是一种“is a”的关系.注意:java中的继承是单继承,一个类只有一个父类. 继承的好处:子类拥有父类的所有属性和方法(private修饰的无效),实现代码的复用 语法 ...
- PHP设计模式之单例模式
<?php #千锋PHP http://www.qfedu.com/php/? #千锋PHP http://www.qfedu.com/php/? namespace app; /** * Cl ...
- ring0 SSDTHook 实现x64/x86
#include "HookSSDT.h" #include <ntimage.h> #define SEC_IMAGE 0x001000000 ULONG32 __N ...
- 2016 Multi-University Training Contest 4 - 1005 (hdu5768)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5768 题目大意:给你区间[L,R],问你[L, R]中有多少个数字x满足x%7=0且x%p[i]≠a[ ...
- Altium_Designer-原理图库如何添加低电平有效的管脚?
在编辑元件原理图符号时,在display name选项中将要加低电平的字符后面都加上“\”即可,如图:
- IOS 解析Json数据(NSJSONSerialization)
● 什么是JSON ● JSON是一种轻量级的数据格式,一般用于数据交互 ● 服务器返回给客户端的数据,一般都是JSON格式或者XML格式(文件下载除 外) ● JSON的格式很像OC中的字典和数组 ...
- 1.06 在WHERE子句中引用取别名的列
如下查询,会抛出错误: mysql> select sal as salary, comm as commission from emp where salary < 5000;ERROR ...
- 计算最大矩形面积,POJ(2082)
题目链接:http://poj.org/problem?id=2082 把矩形按照高度一次递增的循序排列,当违反这一规则的时候,更新ans,用新的data替换之前的矩形.然后最后扫一遍. #inclu ...