Vim插件YouCompleteMe安装记录(号称最难装的Vim插件?)

2023-05-16

使用 PulginInstall 安装就不要想了,如果你没有梯子的话

自己的 ssr 被封,使用的同事的 ss,但是同事设置的加密方式在 linux 上的 ss 应用不支持...

 

好吧,直接上过程

1. 首先先获取 YouCompleteMe 的代码


cd ~/.vim/bundle

# 拉取 YouCompleteMe 项目代码
git clone https://github.com/ycm-core/YouCompleteMe.git

# 进入目录
cd YouCompleteMe

# 安装子模块
git submodule update --init --recursive  

这里安装子模块会出现


fatal: unable to access 'https://go.googlesource.com/tools/': Failed to connect to go.googlesource.com port 443: 连接超时
fatal: 无法克隆 'https://go.googlesource.com/tools' 到子模组路径 '/home/zyj/.vim/bundle/YouCompleteMe/third_party/ycmd/third_party/go/src/golang.org/x/tools'  

原因 go.googlesource.com 域名国内无法直接访问,这时候根据 后面的路径  /home/zyj/.vim/bundle/YouCompleteMe/third_party/ycmd/third_party/go/src/golang.org/x/tools 来知道该模块是要放这个路径下的

到 github 上找到该模块下载到该路径


cd ~/.vim/bundle/YouCompleteMe/third_party/ycmd/third_party/go/src/golang.org/x

git clone https://github.com/golang/tools.git  

回到 YouComplateMe 目录继续安装其他子模块


cd ~/.vim/bundle/YouCompleteMe

# 继续子模块的安装
git submodule update --init --recursive  

 

2. 去一个你喜欢的目录,例如用户主目录


cd ~

# 创建一个目录用来存放接下来要编译的代码的目录
mkdir ~/.ycm_build

# 进入目录
cd ~/.ycm_build

# 编译输出到当前目录(.ycm_build)
cmake -G "Unix Makefiles" . ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp  

2.1 如果需要实用 C 语言家族的相关功能(我这里系统自带 llvm 3.8、clang 3.8、libclang 没有、libboost-all-dev 没有),不需要则直接跳过 2.1


sudo apt install llvm-3.9 clang-3.9 libclang-3.9-dev libboost-all-dev  

2.2 编译 YouComplateMe

# 跳过了 2.1 执行
cmake -G "Unix Makefiles" . ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp

# 执行了 2.1 请执行
cmake -G "Unix Makefiles" -DUSE_SYSTEM_BOOST=ON -DUSE_SYSTEM_LIBCLANG=ON . ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp

可以看到 ~/.ycm_build 目录下结构( 我没有跳过 2.1,如果你跳过了说不定有不一样的,只要编译过程中没有报错就没有问题 )


# zsh 下 l 等于 bash 下的 ls -al
l ~/.ycm_build 总用量 72K drwxr-xr-x 5 zyj zyj 4.0K 7月 18 19:00 . drwxr-xr-x 46 zyj zyj 4.0K 7月 18 19:35 .. drwxr-xr-x 3 zyj zyj 4.0K 7月 18 19:00 BoostParts -rw-r--r-- 1 zyj zyj 18K 7月 18 19:00 CMakeCache.txt drwxr-xr-x 4 zyj zyj 4.0K 7月 18 19:03 CMakeFiles -rw-r--r-- 1 zyj zyj 1.6K 7月 18 19:00 cmake_install.cmake -rw-r--r-- 1 zyj zyj 19K 7月 18 19:00 compile_commands.json -rw-r--r-- 1 zyj zyj 4.1K 7月 18 19:00 Makefile drwxr-xr-x 3 zyj zyj 4.0K 7月 18 19:00 ycm

2.3 上面 2.2 只是构建了中间编译,下面执行最终编译


# 如果你不是 window 系统,可以将 --config Release 去掉
cmake --build . --target ycm_core --config Release

编译过程如下:


[  4%] Building CXX object ycm/CMakeFiles/ycm_core.dir/Candidate.cpp.o
[  8%] Building CXX object ycm/CMakeFiles/ycm_core.dir/CandidateRepository.cpp.o
[ 12%] Building CXX object ycm/CMakeFiles/ycm_core.dir/Character.cpp.o
[ 16%] Building CXX object ycm/CMakeFiles/ycm_core.dir/CharacterRepository.cpp.o
[ 20%] Building CXX object ycm/CMakeFiles/ycm_core.dir/ClangCompleter/ClangCompleter.cpp.o
[ 24%] Building CXX object ycm/CMakeFiles/ycm_core.dir/ClangCompleter/ClangHelpers.cpp.o
[ 28%] Building CXX object ycm/CMakeFiles/ycm_core.dir/ClangCompleter/ClangUtils.cpp.o
[ 32%] Building CXX object ycm/CMakeFiles/ycm_core.dir/ClangCompleter/CompilationDatabase.cpp.o
[ 36%] Building CXX object ycm/CMakeFiles/ycm_core.dir/ClangCompleter/CompletionData.cpp.o
[ 40%] Building CXX object ycm/CMakeFiles/ycm_core.dir/ClangCompleter/Documentation.cpp.o
[ 44%] Building CXX object ycm/CMakeFiles/ycm_core.dir/ClangCompleter/Range.cpp.o
[ 48%] Building CXX object ycm/CMakeFiles/ycm_core.dir/ClangCompleter/TranslationUnit.cpp.o
[ 52%] Building CXX object ycm/CMakeFiles/ycm_core.dir/ClangCompleter/TranslationUnitStore.cpp.o
[ 56%] Building CXX object ycm/CMakeFiles/ycm_core.dir/CodePoint.cpp.o
[ 60%] Building CXX object ycm/CMakeFiles/ycm_core.dir/CodePointRepository.cpp.o
[ 64%] Building CXX object ycm/CMakeFiles/ycm_core.dir/IdentifierCompleter.cpp.o
[ 68%] Building CXX object ycm/CMakeFiles/ycm_core.dir/IdentifierDatabase.cpp.o
[ 72%] Building CXX object ycm/CMakeFiles/ycm_core.dir/IdentifierUtils.cpp.o
[ 76%] Building CXX object ycm/CMakeFiles/ycm_core.dir/PythonSupport.cpp.o
[ 80%] Building CXX object ycm/CMakeFiles/ycm_core.dir/Result.cpp.o
[ 84%] Building CXX object ycm/CMakeFiles/ycm_core.dir/Utils.cpp.o
[ 88%] Building CXX object ycm/CMakeFiles/ycm_core.dir/Word.cpp.o
[ 92%] Building CXX object ycm/CMakeFiles/ycm_core.dir/versioning.cpp.o
[ 96%] Building CXX object ycm/CMakeFiles/ycm_core.dir/ycm_core.cpp.o
[100%] Linking CXX shared library /home/zyj/.vim/bundle/YouCompleteMe/third_party/ycmd/ycm_core.so
[100%] Built target ycm_core  

随后讲编译后文件放到你想要放入的目录


cp ~/.vim/bundle/YouCompleteMe/third_party/ycmd/examples/.ycm_extra_conf.py ~/.vim/  

随后在将 python 和 写入到 ~/.vimrc 中,在文件中位置你随意就好


let g:ycm_server_python_interpreter='/usr/bin/python'
let g:ycm_global_ycm_extra_conf='~/.vim/.ycm_extra_conf.py'  

然后尝试写个文件吧


vim hello.c

# 报了如下错误,但是按任意键后依然进入编辑器了,但是 ycm 并不生效
YouCompleteMe unavailable: requires Vim compiled with Python (2.7.1+ or 3.4+) support.
YouCompleteMe unavailable: unable to load Python.  

在 YouComplate 的 github issue 上找到了解决方法,原理我也不知道


sudo apt install vim-gtk   

随后就好了,再次进入编辑没有报错提示,YCM 也正常生效了

现在,愉快的开始你的代码吧!

 

参考:https://www.jianshu.com/p/d908ce81017a?nomobile=yes 

 

转载于:https://www.cnblogs.com/YMaster/p/11209813.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vim插件YouCompleteMe安装记录(号称最难装的Vim插件?) 的相关文章

  • 【STM32技巧】STM32 PWM互补输出设置

    本例程是使用STM32CubeMX 6 5版本生成带代码 测试单片机型号 xff1a STM32F103VET6 时钟设置72MHZ 使用定时器1的通道1 和 通道2 配置PWM互补输出 分频72分频 定时器频率为 72MHZ 72 61
  • js删除键值对的方法

    1 对于Map 增set k v 删delete k 查 get k 改set 43 get span class token keyword const span graph span class token operator 61 sp
  • java一路走来

    记得第一次学编程 xff0c 那都是高二时 xff0c 那时因为电脑很狂热 xff0c 刚好有一个哥就给我介绍了编程 xff0c 并给我演示了下vb语言 xff0c 用vb做了个计算器 xff0c 当时我惊呆了 xff0c 才知道编程有多神
  • Python基础教程之列表

    八仙过海是一个中国民间故事 xff0c 讲了汉钟离 张果老 韩湘子 铁拐李 吕洞宾 何仙姑 蓝采和和曹国舅八位神仙各显神通渡海的故事 我们都知道变量只能被赋值为一个值 xff0c 现在我们想把八位神仙的名字同时赋值 xff0c 该如何实现呢
  • move_base参数配置

    现在我们已经可以构建当前环境地图 xff0c 可以实现机器人在当前地图中的定位 那接下来就可以在地图上给定目标点 xff0c 开始规划路径控制机器人移动过去 xff0c 这样就可以完成在已知地图中进行自动导航的任务了 在已知地图中进行路径规
  • 计算节点nova服务启动失败

    在计算节点启动openstack nova compute服务的时候 xff0c 服务无法正常启动 xff0c 查看nova的日志发现如下报错 xff1a 2019 04 25 00 02 26 481 24682 ERROR nova T
  • openstack通过dashboard页面创建实例,实现实例与外部通信

    配置完所有节点 xff0c 通过dashboard页面来进行下一步的配置 首先通过admin用户登录页面 在管理员下 xff0c 创建一个外部网络 注意供应商类型为flat xff0c 之前修改配置文件时有提到过 etc neutron p
  • 防火墙经过地址转换抓包详解

    R表示收到 xff0c X表示发出 xff0c R 64 eth1是从eth1口收到数据包 X 64 eth2是从2口发出数据包 16 1 1 1 gt 18 1 1 2 表示IP 16 1 1 1发给IP 18 1 1 2 Seq后面的数
  • PyTorch复现SRGAN算法核心代码(带注释)

    train py import argparse import os from math import log10 import pandas as pd import torch optim as optim import torch u
  • saltstack部署OpenStack rocky版

    通过saltstack工具 xff0c 来自动部署OpenStack 基本的yaml 源码放在github上了 有兴趣可以查看 自行测试三台虚拟机安装没有问题 需要注意的是安装cinder slave xff08 从节点 xff09 的时候
  • openstack登录dashboard无法获取实例,无法获取镜像

    在部署配置完openstack基础服务以及dashboard后 登录页面发现很多功能都不正常 xff0c 无法获取实例 xff0c 也无法获取镜像 查看日志 xff1a grep ERROR var log nova var log nov
  • 实例 "test-1" 执行所请求操作失败,实例处于错误状态。: 请稍后再试

    openstack创建实例的时候出现报错 xff1a 实例 test 1 执行所请求操作失败 xff0c 实例处于错误状态 请稍后再试 错误 Build of instance 6ec6e8b1 9300 4be4 95fe 20434ea
  • Pycharm报错:Process finished with exit code -1066598274 (0xC06D007E)

    问题描述 pycharm运行到np linalg slogdet 时报错Process finished with exit code 1066598274 0xC06D007E xff0c 检查发现该函数输入shape超过 xff08 3
  • 你能区分数字化与信息化吗?

    近几年 xff0c 数字化 悄然无息地取代了 信息化 xff0c 从各种定义中 xff0c 我们可以知道数字化是指将任何连续变化的输入如图画的线条或声音信号转化为一串分离的单元 xff0c 在计算机中用0和1表示 xff0c 通常用模数转换
  • k8s高可用集群 kube-flannel报错,从running-error-CrashLoopBackOff。node“k8s-master-1“podcidr not assigned

    flannel 报错 xff0c 朋友别着急 xff0c 慢慢来 xff0c 看看能不能帮到你 报错信息 xff1a Error registering network failed to acquire lease node k8s ma
  • 查找文献的常用方法

    查找文献的常用方法 一 直接进行论文关键字搜索 直接搜索某个专题的论文 xff0c 关键词 和 摘要 是论文的特征词汇 如 xff1a Google学术搜索 xff1a http scholar google com 百度国学搜索 xff1
  • 【框架解析】Hadoop系统分析(九)--Http服务

    hadoop内嵌了jetty的服务 xff0c 提供了一系列的servlet供外界或是内部节点之间使用http访问 HttpServer 封装了jetty的Server xff0c 提供http服务 默认会提供三个context logs
  • 算法学习

    我们用的教材是电子工业出的 计算机算法设计与分析 xff08 王晓东 xff09 xff0c 这本书还行吧 xff0c 其实国内的任何一本算法书都 还不错 xff0c 因为他们无非都参考了算法导论或计算机程序设计艺术等这些国外的经典算法图书
  • Android Studio添加多国语言

    问题 如何在AS上添加多国语言string xml 初学者如我 xff0c 估计也摸不到地方 bing下网络居然没有找到这个问题的解答 xff0c 有的是直接在Res下添加语言文件夹即可 这个也是一个方法 xff0c 但是 xff0c 我想
  • Hiding Images in Plain Sight: Deep Steganography 于众目睽睽之下隐藏图像:深度隐写术

    Hiding Images in Plain Sight Deep Steganography 于众目睽睽之下隐藏图像 xff1a 深度隐写术 1 摘要 隐写术是将秘密信息隐藏在另一条普通信息中的一种实践 通常 xff0c 隐写术用于在较大

随机推荐