Linux CentOS 7 YouCompleteMe相关配置。
CentOS 6.5上面弄了2天,以失败告终!!!当作练手了。在网上看到一篇CentOS7.0上安装YouCompleteMe插件的文章,就重新在虚拟机上安装了一个CentOS7,按那个文章执行了一下,花了一天的时间,安装成功了。
文章地址:http://www.tuicool.com/articles/yquEZzb
安装:
1.先安装vundle插件,这个插件可以看作是像360的软件管家,只是这个vundle插件是管理vim插件的(也许还可以管理非vim的插件,我没深究)。利用这插件可以管理很多vim的插件。
$ git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
【注】没有特别说明,这里命令都代表在$HOME目录下。$表示一般用户,#表示root
如果没有git命令,那就先去安装一个git
$ vim .vimrc
【注】如果没有这个.vimrc文件,可以用root用户查看root用户的$HOME目录下面有没有,如果有的话就拷贝一份到当前普通用户的$HOME下面来,或者自己新建一份也行。如果没有的话,可能是没有安装vim。别看系统能输入vim命令,不一定安装了,到下面的步骤还会再讲这个问题。
配置内容如下,复制粘贴进去即可:
set nocompatible " be iMproved, required
filetype off " required " set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()
" alternatively, pass a path where Vundle should install plugins
"let path = '~/some/path/here'
"call vundle#rc(path) " let Vundle manage Vundle, required
Plugin 'gmarik/vundle' " The following are examples of different formats supported.
" Keep Plugin commands between here and filetype plugin indent on.
" scripts on GitHub repos
Plugin 'tpope/vim-fugitive'
Plugin 'Lokaltog/vim-easymotion'
Plugin 'tpope/vim-rails.git'
" The sparkup vim script is in a subdirectory of this repo called vim.
" Pass the path to set the runtimepath properly.
Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
" scripts from http://vim-scripts.org/vim/scripts.html
Plugin 'L9'
Plugin 'FuzzyFinder'
" scripts not on GitHub
Plugin 'git://git.wincent.com/command-t.git'
" git repos on your local machine (i.e. when working on your own plugin)
Plugin 'file:///home/gmarik/path/to/plugin'
" ... filetype plugin indent on " required
Bundle 'Valloric/YouCompleteMe'
保存退出,然后在输入vim命令,打开vim编辑器,在vim的命令模式下输入如下命令进行插件安装。(需要安装的插件就配置在.vimrc文件中,看看.vimrc配置文件就清楚了)
:BundleInstall
【注】我安装的时候出现问题,vim居然提示找不到BundleInstall命令,就是说,我输入上面那个安装命令,提示找不到命令,删掉几个字母,按Tab,也没有自动提示补全命令,果然是没有BundleInstall命令。我猜测会不会Bundle也是一个插件,也没有安装,按这个思路搜索了一上午的文章,也没找到解决办法。后来偶然看到一个文章中说执行vi并一定就是打开的vi,也有可能是打开的vim,我就猜测难道我的centos7都没装vim。结果我用虚拟机的软件安装向导一搜索vim,果然vim是可以安装的状态,那就表示我系统没安装,要么就是版本低(我不确定),反正就是安装好vim后,BundleInstall命令才可以用。
安装时有个错误,这是正常的,因为ycm需要手动编译出库文件。
Done! With errors; press l to view log
ycm_client_support.[so|pyd|dll] and ycm_core.[so|pyd|dll] not detected; you need to compile YCM before using it. Read the docs!
另外,如果有些插件安装失败,那就别管了,注释掉,主要保证YouCompleteMe插件能安装上。
配置YouCompleteMe:
然后到.vim/bundle/YouCompleteMe 下执行命令
$ ./install.sh --clang-complete
参数是为了支持c/c++的补全
【注】执行命令后,可能会报错。我安装的时候是报错了,先报了一个错误,我看了报错信息,大概意思是没有CMake命令。网上搜了一下,安装了CMake,就解决了。
然后可能还会出现报错:
Some folders in /home/sky-tm/.vim/bundle/YouCompleteMe/third_party/ycmd/third_party are empty; you probably forgot to run: git submodule update --init --recursive
若出现此错误,则按照提示来,继续输入命令:
$git submodule update --init –recursive
等此命令更新完成后,再此执行命令:
$ ./install.sh --clang-complete
YouCompleteMe进行补全时需要查找一个 ycm_global_ycm_extra_conf文件。可以每次在工作目录中放置这个文件,也可以设置全局。全局设置要在. vim rc中添加一行即可。
let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py '
注:.ycm_extra_conf.py 是个隐藏文件,路径在~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py
我最后只是把.ycm_extra_conf.py拷贝一份,放到我的$HOME目录下了,然后再配置了一下,增加了一些C/C++标准头文件的路径。还是不太懂那个配置文件的意思。
另外,我想配置一下,让这个只提供C,C++相关的提示,不要其他语言的提示,应该怎么做?
另外,这个文章中的.vimrc配置并不是最终的,到此为止,我试了一下,效果并不是很好,也许我还没有发挥它的最大威力,不过个人感觉确实不咋地,又在网上找了一份配置,就拷贝的一份.vimrc文件,然后修改了一些格式上的错误(代码中用的中文标点引起错误),然后试了一下,效果还可以,居然按F5可以编译执行,有种VS上的感觉了。注意一点,更换了.vimrc文件之后,还是要执行BundleInstall,因为第二份的.vimrc配置文件增加了一些插件,需要BundleInstall一下.
记录本人电脑上vim的一些操作方式:
Ctrl + ] 跳转到函数定义
Ctrl +t 返回函数调用处
F5 编译运行C/C++程序(另外,关于unix网络编程源代码使用,这里不能用F5来编译了,应该用gcc –o name name.c -lunp)
Linux CentOS 7 YouCompleteMe相关配置。的更多相关文章
- Linux CentOS下安装、配置mysql数据库
假设要在Linux上做j2ee开发.首先得搭建好j2ee的开发环境.包含了jdk.tomcat.eclipse的安装(这个在之前的一篇随笔中已经有具体解说了Linux学习之CentOS(七)--Cen ...
- 超详细的 Linux CentOS yum 源的配置与使用【转发+新增】
一.yum 简介 yum,是Yellow dog Updater, Modified 的简称,是杜克大学为了提高RPM 软件包安装性而开发的一种软件包管理器.起初是由yellow dog 这一发行版的 ...
- Linux基础一:Linux的安装及相关配置
1. 计算机操作系统简介 1) 操作系统的定义:操作系统是一个用来协调.管理和控制计算机硬件和软件资源的系统程序,它位于硬件和应用程序之间. 2) 操作系统的内核的定义:操作系统的内核是一 ...
- 分布式文件系统 FastDFS 5.0.8 & Linux CentOS 6.7 安装配置
原文:http://blog.csdn.net/wlwlwlwl015/article/details/52619851 前言 项目中用到文件服务器,有朋友推荐用fastdfs,所以就了解学习了一番, ...
- Linux(CentOS 6.7)下配置Mono和Jexus并且部署ASP.NET MVC3、4、5和WebApi(跨平台)
1.开篇说明 a. 首先我在写这篇博客之前,已经在自己本地配置了mono和jexus并且成功部署了asp.net mvc项目,我也是依赖于在网上查找的各种资料来配置环境并且部署项目的,而其在网上也已有 ...
- Linux(CentOS 6.5)下配置Mono和Jexus并且部署ASP.NET MVC5
1.开篇说明 a. 首先我在写这篇博客之前,已经在自己本地配置了mono和jexus并且成功部署了asp.net mvc项目,我也是依赖于在网上查找的各种资料来配置环境并且部署项目的,而其在网上也已有 ...
- linux下centos6.8相关配置,以及音频相关配置
一:安装上传下载命令 1:cd /tmp 2:wget http://www.ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz 3:tar zxvf lrzsz-0. ...
- 关于linux Centos 7一个网卡配置多个IP的方法
有时我们在工作中,会遇到一个网卡配置多个ip的情况,尤其是在linux服务器方面的应用教多 于是笔者将其配置过程整理如下,希望能帮到遇到同样问题的朋友,这里以vmware虚拟机下的Centos 7为例 ...
- linux 命令学习-网络相关配置
网络配置相关 网卡配置文件:etc/sysconfig/network-scripts/ifcfg-eth0 DNS 配置文件 etc/resolv.conf 主机配置文件 etc/sysconfig ...
随机推荐
- B - Network - uva 315(求割点)
题意:给一个无向连通图,求出割点的数量. 首先输入一个N(多实例,0结束),下面有不超过N行的数,每行的第一个数字代表后面的都和它存在边,0表示行输入的结束(很蛋疼的输入方式). 分析:割点的模板题 ...
- 翻译brent ozar的sqlserver dba训练课程——第一章:建立数据库服务器清单
在公司里,走进销售副总裁的办公室,询问他手下有多少销售人员.不,我的意思是你并不要那么做,他们会问你销售工具为什么那么慢. 其实我的意思是,如果你能走进他的办公室问他这个问题.我敢打赌,他会马上回答 ...
- MarkWord - 可发布博客的 Markdown编辑器 代码开源
因为前一段时间看到 NetAnalyzer 在Windows10系统下UI表现惨不忍睹,所以利用一段时间为了学习一下WPF相关的内容,于是停停写写,用了WPF相关的技术,两个星期做了一个Markdow ...
- (转)How to renew your Apple Push Notification Push SSL Certificate
转自:https://blog.serverdensity.com/how-to-renew-your-apple-push-notification-push-ssl-certificate/ It ...
- [Angular 2]ng-class and Encapsulated Component Style2
Many Components require different styles based on a set of conditions. Angular 2 helps you style you ...
- expect spawn、linux expect 用法小记
使用expect实现自动登录的脚本,网上有很多,可是都没有一个明白的说明,初学者一般都是照抄.收藏.可是为什么要这么写却不知其然.本文用一个最短的例子说明脚本的原理. 脚本代码如下: ######## ...
- The type or namespace name 'Script' does not exist in the namespace 'System.Web' (are you missing an assembly reference?)
应该说是 .net4 的bug,没有所谓的 System.Web.Extensions.dll 库文件,需要将项目的 Target Framework修改为 3.5版本,才能加载System.Web. ...
- 捷易拍与springMVC系统结合
1. 捷易拍高拍仪在jsp页面的调用 使用ActiveX插件的方式处理解决此问题,捷易拍公司提供了支持IE8以上的32位浏览器的插件,安装插件后,我们可以使用Object标签,使用高拍仪 注意: 1. ...
- poj1981 Circle and Points 单位圆覆盖问题
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud Circle and Points Time Limit: 5000MS Me ...
- .attr()和.prop()和.css()的区别
是不是新手都会遇到这个问题?遇到过一次,在网上搜一搜,综合成了下面这样.重点参考了dolphin的‘jQuery的attr与prop’, 写的很清楚呢. 一般attribute翻译成中文术语为“特性” ...