YouCompleteMe(YCM)安装时遇到的问题(能遇到的几乎都遇到了)
YouCompleteMe(YCM)安装时遇到的问题
- 准备阶段(安装依赖)
- python动态库问题
- 编译期间的问题(卡在了Found Python3:XXX Interpreter Development这里)
- 小插曲(系统自带的python3被卸载了怎么办)
- 编译完成进入VIM代码还是不能自动补全问题
- 安装完成后却没有语法检查的问题
- 无法下载(libclang-12.0.0-x86_64-unknown-linux-gnu.tar.bz2)
- 我的.vimrc配置
准备阶段(安装依赖)
首先YCM项目内有许多子模块,然而由于国内的围墙问题,所以下载github上的东西会很慢,
解决方法一,去gitee上找对应的仓库
解决方法二,github的解决方法
首先需要装很多依赖(应该只需要python3.6、vim8.1以上)
不过我把这个链接的依赖全部装了一遍。
附上我看的两个最主要的:
vim升级
python3升级
python动态库问题
这里python3升级的时候有一步是这样的(编译),./configure --prefix=/usr/local/python38
最好加上--enable-shared
的选项,变成这样
./configure --enable-shared --prefix=/usr/local/python38
这是因为后面编译YCM的时候,没有python动态库的话会报错。而且这个动态链接库的位置还需要放对
有四个,三个动态库,一个静态库
反正我是全部复制到了/usr/lib/x86_64-linux-gnu
这个目录下。
编译期间的问题(卡在了Found Python3:XXX Interpreter Development这里)
这些东西全部装完后,就可以到YCM的目录下进行编译了
提前说明一下我的YCM是现通过vim-plug装的,装完后需要去YCM目录下(.vim/plugged/YouCompleteMe
)编译,
这里我遇到了最坑的事情,就是当我执行python3 install.py的时候,总是卡在
小插曲(系统自带的python3被卸载了怎么办)
这里,我折腾了很久,期间还把ubuntu自带的python3卸载了,这是一件悲惨的事情,一开始我以为鞋在了只需要apt-get安装回来就没事了,实际上并不是这样,python3被卸载以后,用apt装软件会出现各种问题,
大概就是这样,实际上 这个问题的解决只需要将
每次提示的这个文件删掉就好了,删文件这个事情需要重复个大概三四次,也就是需要删除三四个文件,具体的文件路径按照他的提示找就行了。
好了,回到正题,卡在那里很久怎么办,等就行了,它不是卡了,是我的机器太垃圾了,所以他的速度很慢。
编译完成进入VIM代码还是不能自动补全问题
编译完成后,vim打开文件会看到一行提示,大概是这样的一串
YouCompleteMe unvailable: xxx undefined symble xxx
最终终于找到解决办法,参见这个链接
问题源自Vim,验证方法很简单。从上述报错信息可知问题源自模块socket
,先打开Python,执行import socket
无报错,说明与Python无关;再打开vim,进入命令行模式,执行
:python3 import socket
立即出现上述报错信息,说明问题出自Vim,与YCM无关。解决方法也很简单,按上述解决办法里提示的,在终端,先执行
export LDFLAGS="-rdynamic"
然后重新编译安装Vim即可。
安装完成后却没有语法检查的问题
这个是因为安装的时候缺少了指令--clang-completer
以及下面这个文件放置位置问题,并且放置的位置需要在.vimrc
中指定,
python3 install.py --clang-completer
无法下载(libclang-12.0.0-x86_64-unknown-linux-gnu.tar.bz2)
但是用这个命令安装的是,我又遇到问题了,
-- Downloading libclang 12.0.0 from https://github.com/ycm core/llvm/releases/download/12.0.0/libclang-12.0.0-x86_64-unknown-linux-gnu.tar.bz2
CMake Error at ycm/CMakeLists.txt:107 (file):file DOWNLOAD HASH mismatchfor file: [/root/.vim/plugged/YouCompleteMe/third_party/ycmd/cpp/../clang_archives/libclang-12.0.0-x86_64-unknown-linux-gnu.tar.bz2]expected hash: [dc7b08d63fcf504fdbcfc5b96c446beee8ee79dc96e8d315666b20030c41e29a]actual hash: [e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855]status: [35;"SSL connect error"]CMake Error at ycm/CMakeLists.txt:123 (message):Cannot find path to libclang in prebuilt binaries-- Configuring incomplete, errors occurred!
See also "/tmp/ycm_build_nuqhiw48/CMakeFiles/CMakeOutput.log".
See also "/tmp/ycm_build_nuqhiw48/CMakeFiles/CMakeError.log".
ERROR: the build failed.NOTE: it is *highly* unlikely that this is a bug but rather
that this is a problem with the configuration of your system
or a missing dependency. Please carefully read CONTRIBUTING.md
and if you're sure that it is a bug, please raise an issue on the
issue tracker, including the entire output of this script
and the invocation line used to run it.
反正就是有一个叫libclang-12.0.0-x86_64-unknown-linux-gnu.tar.bz2
的文件下不下来。
这个时候我们只需要手动下载就好了,问题就在于复制上面报错的时候显示的链接无法访问,所以我们需要用下面这个链接,只需要把你要下载的版本对应的改一下就好了。
https://github.com/ycm-core/llvm/releases/download/12.0.0/libclang-12.0.0-x86_64-unknown-linux-gnu.tar.bz2
然后把下载好的文件放进报错提示的目录下面,注意,该目录下面已经有一个同名的文件,但是文件大小为空,我们需要把该文件重命名成别的名字就行。
然后在编译,问题就解决了。
我的.vimrc配置
let mapleader=" "set autoindent
"set shiftwidth=4
"set mouse=a
set number
set cindent
"set tabstop=4
set viminfo='1000set nocompatible
filetype on
filetype indent on
filetype plugin on
filetype plugin indent on
set mouse=a
set encoding=utf-8
let &t_ut=''
set expandtab
set tabstop=2
set shiftwidth=2
set softtabstop=2
set list
set listchars=tab:鈻竆 ,trail:鈻?set scrolloff=5
set tw=0
set indentexpr=
set backspace=indent,eol,start
set foldmethod=indent
set foldlevel=99
let &t_SI = "\<Esc>]50;CursorShape=1\x7"
let &t_SR = "\<Esc>]50;CursorShape=2\x7"
let &t_EI = "\<Esc>]50;CursorShape=0\x7"
set laststatus=2
set autochdir
au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endifset wildmenu "鍛戒护琛岋紝杈撳叆鍛戒护涓嶅叏鍔熻兘"
set cursorline "鍏夋爣鎵€鍦ㄨ鐨勬í绾?
set showcmd "鏄剧ず鍛戒护"
exec "nohlsearch"
set hlsearch "楂樹寒鎼滄墍"
set incsearch "杈规悳杈归珮浜?"鏇存敼閿洏鏄?鏍煎紡 noremap 鐜板湪鐨勯敭 鍘熸潵鐨勯敭"
noremap j h
noremap i k
noremap k j
noremap h i
noremap H I
noremap = n
noremap - N
noremap n =
noremap <LEADER><CR> :nohlsearch<CR>
noremap <LEADER>[ ^
noremap <LEADER>] $"璁剧疆閿洏鏄犲皠鍒悕,鏍煎紡 map 鍒悕 鍘熷悕"
map s <nop> "<nop> nooperation 浠€涔堥兘涓嶅仛
map S :w<CR>
map Q :q<CR>
map R :source $MYVIMRC<CR>map sl :set splitright<CR>:vsplit<CR> "鍚戝彸鍒嗗睆"
map sj :set nosplitright<CR>:vsplit<CR> "鍚戝乏鍒嗗睆"
map si :set nosplitbelow<CR>:split<CR> "鍚戜笂鍒嗗睆"
map sk :set splitbelow<CR>:split<CR> "鍚戜笅鍒嗗睆"
map <LEADER>l <C-w>l "鍒嗗睆鏃讹紝鍏夋爣鍚戝彸绐楀彛"
map <LEADER>j <C-w>h "鍒嗗睆鏃讹紝鍏夋爣鍚戝乏绐楀彛"
map <LEADER>i <C-w>k "鍒嗗睆鏃讹紝鍏夋爣鍚戜笂绐楀彛"
map <LEADER>k <C-w>j "鍒嗗睆鏃讹紝鍏夋爣鍚戜笅绐楀彛"map <LEADER><up> :res +5<CR> "鍒嗗睆鏃讹紝鍒嗛厤绐楀彛澶у皬"
map <LEADER><down> :res -5<CR> "鍒嗗睆鏃讹紝鍒嗛厤绐楀彛澶у皬"
map <LEADER><right> :vertical resize-5<CR> "鍒嗗睆鏃讹紝鍒嗛厤绐楀彛澶у皬"
map <LEADER><left> :vertical resize+5<CR> "鍒嗗睆鏃讹紝鍒嗛厤绐楀彛澶у皬"map tu :tabe<CR> "鏂板缓鏍囩椤?
map tn :-tabnext<CR> "鏌ョ湅涓婁竴涓爣绛鹃〉"
map ti :+tabnext<CR> "鏌ョ湅涓嬩竴涓爣绛鹃〉"map sv <C-w>t<C-w>H "姘村钩鍒嗗睆鏃讹紝鍒囨崲涓哄瀭鐩村垎灞?
map sh <C-w>t<C-w>K "鍨傜洿鍒嗗睆鏃讹紝鍒囨崲涓烘按骞冲垎灞?call plug#begin('~/.vim/plugged')Plug 'vim-airline/vim-airline'
Plug 'connorholyday/vim-snazzy'
Plug 'https://github.com.cnpmjs.org/dense-analysis/ale.git'
Plug 'https://github.com.cnpmjs.org/Valloric/YouCompleteMe'call plug#end()colorscheme snazzy" " ===
" " === You Complete ME
" " ===nnoremap gd :YcmCompleter GoToDefinitionElseDeclaration<CR>nnoremap g/ :YcmCompleter GetDoc<CR>nnoremap gt :YcmCompleter GetType<CR>nnoremap gr :YcmCompleter GoToReferences<CR>let g:ycm_autoclose_preview_window_after_completion=1let g:ycm_autoclose_preview_window_after_insertion=1let g:ycm_use_clangd = 0let g:ycm_python_interpreter_path = "/usr/local/bin/python3"let g:ycm_python_binary_path = "/usr/local/bin/python3"let g:ycm_global_ycm_extra_conf = '~/.vim/plugged/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py' " 浣犵殑鏂囦欢璺緞let g:ycm_show_diagnostics_ui = 1 " 璇硶妫€鏌ュ紑鍏?" ===
" === ale
" ===
let b:ale_linters = ['pylint']
let b:ale_fixers = ['autopep8', 'yapf']
YouCompleteMe(YCM)安装时遇到的问题(能遇到的几乎都遇到了)相关推荐
- Vim 插件YouCompleteMe(YCM)安装
vim插件YouCompleteMe插件安装: 在ubuntu 18.04默认的vim版本是8.0,PluginInstall之后报不支持当前vim版本,所以在github上下载vim8.2的源码进行 ...
- vim 自动补全插件YCM 安装 配置
vim 自动补全插件YCM 安装 配置 报错 NoExtraConfDetected: No .ycm_extra_conf.py file detected, so no compile flags ...
- vim-python使用教程_vim配置python编程环境及YouCompleteMe的安装教程
python号称人工智能语言,现在可算大热,这篇博客将介绍如何用vim打造一款自己专属的python编程环境. step1 由于安装YouCompleteMe需要vim8.0及以上版本,所以得安装使用 ...
- windows10下安装、配置vim及YCM安装
久仰vim编辑器之神的大名,最近出于好奇,在windows10下折腾了一下,在此记录一下历程. 文章目录 1. windows10下的vim安装和配置 1.1 安装vim 1.2. 基础设置 1.3. ...
- mysql属性配置提高查询_MYSQL性能优化-安装时优化参数配置提高服务性能
MYSQL性能优化一直是个头痛的问题,目前大多都是直接把页面html静态页面或直接使用了缓存技术,下面我就mysql本身的性能优化来分享一下. 安装时优化参数配置提高服务性能 在Linux下安装Mys ...
- 数据库安装时挂起问题
数据库安装时挂起问题 安装SQL 2000数据库和补丁时,如果出现"以前进行的程序安装创建了挂起的文件操作.运行程序之前,必须重新起动计算机."的提示,这时往往重启无用,解决办法如 ...
- ad hoc是什么的简称_签名后的App安装时出现安装失败是什么原因?如何解决?
相信了解过ios签名的朋友都知道,ios签名可以对App添加信任,使其能够绕过App Store的审核直接安装到ios设备上.但是有时我们在使用过程中会发现,签名后的App在安装时会出现安装失败的情况 ...
- google浏览器插件安装时出错,Package is invalid: CRX HEADER INVALID
google浏览器插件安装时出错,Package is invalid: CRX HEADER INVALID 原文件 将.crx结尾的扩展文件改为rar或zip结尾,变成压缩文件 然后解压这个文件 ...
- 解决pip安装时出现报错TypeError: unsupported operand type(s) for -=: ‘Retry‘ and ‘int‘
我在Linux下使用pip安装时出现报错: Exception: Traceback (most recent call last):File "/usr/lib/python2.7/dis ...
最新文章
- Meta AI 新研究,统一模态的自监督新里程碑
- 《windows中GSX的管理》之四——cmware-cmd实例
- 【Python实践-1】求一元二次方程的两个解
- js 加alert后才能执行方法
- Sublime package control错误:There are no packages available for installation
- Php输出Xml报错:XML declaration allowed only at the start of the document
- php 文件类型 html,HTML的文档类型怎么选择
- 9个元素换6次达到排序序列_C语言必学的12个排序算法:希尔排序(第3篇)
- 【ES11(2020)】Dynamic Import 动态引入
- html53d正方形,利用HTML5绘制点线面组成的3D图形的示例
- 第001讲 html介绍 html运行原理
- java集成 腾讯信鸽_移动推送 腾讯信鸽集成
- 直线分割平面的公式_直线分割平面-jiangwen127-ChinaUnix博客
- 502 proxy error解决方法_Homebrew安装、卸载、可能的报错及解决方案_Mac
- 如何批量裁剪pdf文件中的白边
- 身份证阅读器二次开发说明
- 今天买了正版的beyondcompare 4.0
- 如何做出优雅的过渡效果? Dotween插件的简单介绍及示例代码
- unreal-教程-第十八章:UI跟随的基本原理(c++)
- php sybase存储过,SYBASE存储过程详解