linux安装YouCompleteMe(很详细)

linux安装YouCompleteMe插件

  • 检查vim版本查看是否支持python
    • 下载插件管理器Vundle
    • 安装YouCompleteMe前的准备工作
    • 从github上clone YouCompleteMe
    • 编译YCM
    • 配置文件

YouCompleteMe是个功能强大的代码补全插件,但是安装过程非常困难,这里带不太熟悉的朋友进行安装(非常详细)当遇到没有权限是使用sudo执行

目前博主使用的linux发行版是debian9,不过只要是linux安装过程都是一样的

===================================================================

对内容进行补充,当从git拉取或下载子模块的时候可能出现卡顿或下载失败的情况,很有可能是因为网络的原因;请不用担心,多尝试下载几次,如果出现长时间下载一直不动的情况,可以抓取对应端口的数据包。看看有没有数据,没有数据的话按Ctrl-C中断重来

查看连接的端口命令,找到foreign address为443的端口,然后得到对应local address的端口号
netstat -tnp | grep 443
抓取数据包
sudo tcpdump -s 0 -X ‘tcp dst port 本地连接的端口号’

检查vim版本查看是否支持python

在终端输入vim进入vim界面

$ vim

进入编辑模式输入:version

找到其中的版本号和python或者python3
python和python3只需要其中一个是+号就可以了
如果你的vim版本号低于7.4.1578那么就需要重新安装一个高于此版本号的vim
如果你的vim是-python代表不支持python可能需要进行源码安装或者安装vim-nox

$ apt remove vim
$ apt install vim-nox

下载插件管理器Vundle

$ git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

打开.vimrc输入以下内容:

$ vim ~/.vimrc

set nocompatible
filetype on

安装YouCompleteMe前的准备工作

安装YCM前需要安装进行一些准备工作,下载一些需要的东西
安装python-dev, python3-dev

$ apt install python-dev python3-dev

安装开发工具

$ apt install build-essential cmake
//或者
$ apt install build-essential cmake3

Fedora 27及更高版本:

$ dnf install cmake gcc-c++ make python3-devel

从github上clone YouCompleteMe

cd到~/.vim/bundle目录下进行克隆

$ cd ~/.vim/bundle
$ git clone https://github.com/ycm-core/YouCompleteMe.git

进入YouCompleteMe目录下载必要的子模块,这里需要注意,以前能顺利下载的模块更改了url地址导致被墙不能下载成功,需要更新地址,所以此步骤和之前网上有些不太一样

$ cd ~/.vim/bundle/YouCompleteMe
$ sudo git submodule update --init        // 没有–recursive!!! 如果加了这个选项之后修改的url地址会被改回去!

这一步就是修改url地址了,到ycmd目录下打开.gitmodules文件

$ cd third_party/ycmd
$ vim .gitmodules

找到[submodule “third_party/go/src/golang.org/x/tools”]
我们可以看到url地址跟其他大不相同,并不是github中的
修改 url = https://github.com/golang/tools

[submodule “third_party/go/src/golang.org/x/tools”]
   path = third_party/go/src/golang.org/x/tools
   url = https://github.com/golang/tools
   ignore = dirty

保存并退出,在当前目录继续下载子模块

$ git submodule update --init --recursive

下载完成后就可以进行编译了

编译YCM

cd到YouCompleteMe的跟目录下去执行install.py脚本

$ cd ~/.vim/bundle/YouCompleteMe
$ python3 install.py --clang-completer     //添加c/c++语言的补全,或者使用-all不全所有语言
// python编译使用下列
// python install.py --clang-completer

编译完成,但是还不能使用,还需要进行一些配置

配置文件

编译完成之后打开~/.vimrc进行配置,在这里贴上我使用的配置,想要设置自己的配置可以去github查看
YouCompleteMe

call vundle#begin()

set runtimepath+=~/.vim/bundle/YouCompleteMe
"Plugin 'Valloric/YouCompleteMe'
autocmd InsertLeave * if pumvisible() == 0|pclose|endif " 离开插入模式后自动关闭预览窗口
let g:ycm_collect_identifiers_from_tags_files=1         " 开启YCM基于标签引擎
let g:syntastic_ignore_files=[".*\.py$"]
let g:ycm_seed_identifiers_with_syntax = 1         " 语法关键字补全
let g:ycm_confirm_extra_conf = 0                   " 关闭加载.ycm_extra_conf.py提示
let g:ycm_key_list_select_completion = ['','']" 没有这个会拦截掉tab
let g:ycm_key_list_previous_completion = ['','']
let g:ycm_global_ycm_extra_conf='~/.vim/bundle/YouCompleteMe/third_party/ycmd/.ycm_extra_conf.py'
let g:ycm_server_python_interpreter='/usr/bin/python3'
“let g:ycm_global_ycm_extra_conf='~/.vim/.ycm_extra_conf.py'
let g:ycm_show_diagnostics_ui = 1       " 语法检查
let g:ycm_use_clangd = 0
inoremap   pumvisible() ? "\" : "\"        " 回车即选中当前项
nnoremap  :YcmCompleter GoToDefinitionElseDeclaration  " 跳转到定义处
let g:ycm_min_num_of_chars_for_completion = 2		      " 从第2歌键入字符就开始罗列匹配项

call vundle#end()

大功告成!

如果你的vim还是不能补全的话就需要在~/.vim/bundle/YouCompleteMe/third_party/ycmd/.ycm_extra_conf.py这个文件下添加一些内容了

找到你没有的内容添加进去

你可能感兴趣的:(linux,进程会计,linux,debian,YCM,YouCompleteMe,安装插件)