Vim youcompleteme Windows 安装保姆级教程

news2025/1/13 13:12:54

不说废话。

准备

检查 Vim 的 Python 配置

安装好 vimpython 后(python 必须 ≥ \ge 3.6),在 cmd 下运行

vim --version

会弹出以下窗口。

效果
如果发现 python/dynpython3/dyn 都是 - (我不知道只有前者是 + 能不能运行,可能不行)的话,重装 Vim 和 Python。

如果是 +,在 vim 中运行以下的命令:

:echo has('python3')
:python3 任意 python 代码

如果不报错(且正常运行),那么说明 Vim 配置成功。

如果报错,尝试在 Vim 中添加以下代码:

let &pythonthreedll='Python 路径/python版本.dll'
let &pythonthreehome='Python 路径'

并将环境变量中的 PYTHONHOMEPYTHONPATH 全部设为 Python 路径(没有新建一个)。

下载文件

注意:因为某些网站不再提供一些安装包,所以建议安装最新版。

安装 Vundle。

先尝试在 vimrc 中添加以下内容:

Plugin 'ycm-core/YouCompleteMe'

并运行 :PluginInstall

如果你的网相当好,没有出错,那么以后的加速手段都不用看了。

如果出错,那么就从 Gitee clone 一份,但是版本有些旧,还是建议镜像或者快速下载。

然后再在 third-party 里面 clone 一个 ycmd (有时候 Vundle 已经存在就不要 clone 了)

下载环境

在 Python 安装目录里找到 Scripts/pip.exe,并把 Scripts 设为环境变量。

安装 Java。

然后运行:

pip install go
pip install npm
pip install cmake (不确定可不可以)

安装 Node.js。

安装 2019 版 Visual Studio 生成工具,其实官网的 search 已经找不到了,这里给的是可以直接安装的 exe 文件。

准备好可以看到如下界面:

效果
选第一个,安装。

安装 youcompleteme

显然,作为“史上最难配置的插件”,它不仅仅需要以上的配置,还有更离谱的。

首先转到 youcompleteme 所在文件夹运行 python install.py --all --verbose,如果对自己相当自信可以不加 --verbose,因为下面的所有分析都源自 --verbose 的输出。

安装分为七部分:检查上面的环境是否配置、安装 abseil 和 llvm、编译很多 c 类型代码、安装 Omnisharp、运行 npm (好像是为了安装 Rust)、配置 Go、安装 Java 工具 jdt.ls、安装 ClangD

为了防止 github 爆炸,建议在本地能访问 github 的情况下运行。不行就开 hosts,详见百度。

检查环境

这一部分如果有问题肯定是你的问题,下面是应有的输出。

安装 Abseil 和 LLVM

这一部分需要 Github,加载非常慢,需要更改源代码。

在目录下寻找 CMakeLists.txt,应该有(至少)两个。

在这些 txt 中寻找 github (Notepad 中用 Ctrl+F 查找),在所有网址前加上 https://gitdl.cn/。这是加速网站。

txt
txt

编译 C

这一部分较长,但几乎没有问题。有问题就是你的 VS 出问题了。

安装 Omnisharp

这个用的是外部安装,没办法只能等,但是这个比较好,平均几分钟就行了。

运行 npm

这一部分的问题在于会一直卡在 still idealtree builddeps,左边是一个满进度条。

在 cmd 中输入以下命令即可:

npm config set registry https://registry.npmjs.org/

配置 Go

这时的问题是会报错:

connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.

这时输入


go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct

即可解决。

安装 jdt.ls

这边运行时会卡掉,多试几次,平均两次就好了。

还有可能返回 Http404,这时就是 youcompleteme 版本问题,更新即可。

安装 ClangD

这个依赖 Github,幸运的是我找到了 cache,位于 Vim 地址\vimfiles\bundle\YouCompleteMe\third_party\ycmd\third_party\clangd\cache。使用快速下载后把压缩文件放到 cache 里,即可。

至此,你成功安装了 youcompleteme。

运行

在运行时,你可能会遇到形如 ycmd 服务器加载失败的错误,注意不是 Traceback,而是正常输出。Traceback 的错误都是版本问题,重装即可解决。

在你的 vimrc 中加入:

let g:ycm_server_python_interpreter='Python 路径/python.exe'

重启。

后记

猜猜我是怎么知道这么多的?

对,你没猜错,上面的问题我在配置时踩了个遍。

配置时,我重装了一次 Vim,一次 Python,一次 youcompleteme,跑了至少 20 次 install.py,耗费 5 个小时(当然我不可能在等待的时间闲着)。

如果认为有用,请点赞收藏。你的支持是我前进的动力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2064492.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

解决nvm切换node版本不成功的问题(包含全网最正确最齐全的nvm安装配置,全网最细最有用的一篇)

废话前言: 因为现在已经接近实习尾声,我已经没有什么事可干了,于是我就从java后端和python转回前端,开始准备写写前端项目 但是当我重新打开那尘封已久的后端项目的时候,有些是之前GitHub拉去下来的vue项目&#xff0…

【I/O多路复用】

基于I/O多路复用的并发编程 I/O实现I/O多路复用select优缺点 pollepoll优点 I/O I/O复用是基于一个单进程或单线程的一个执行流当中监控多个输入输出流的技术(网络套接字或者文件描述符进行监控)。单进程或单线程,允许多个用户对单进程发起连…

virtualbox从u盘启动

1.添加到vboxusers用户组 sudo usermod -G vboxusers -a whoami 2.为u盘设备添加访问权限,注意替换对应的设备文件,我这里是/dev/sdf sudo chmod orw /dev/sdf 3.为u盘创建一个虚拟的硬盘镜像 sudo VBoxManage internalcommands createrawvmdk -fi…

Unity Protobuf3 GC 问题(反序列化)

背景:Unity接入的是 Google Protobuf 3.21.12 版本,排查下来反序列化过程中的一些GC点,处理了几个严重的,网上也有一些分析,这里就不一一展开,默认读者已经略知一二了。 如果下面有任何问题请评论区留言提…

Java开发笔记-mysql语句查询指定索引

今天同事遇到一个奇怪的sql查询的问题:一条sql有时候执行素的很快(0.xxs),有时候执行很慢(20s),不知道是什么问题. 猜测:1、是不是第一次执行,被mysql缓存了?后面几次直接拿缓存的结果。 2、是不是网络的原…

入门redis

一、安装redis-py库 打开pycharm 在终端中输入 pip install redis 二、连接到redis服务器 import redis r redis.Redis(hostlocalhost, port6379, db0, decode_responsesTrue)host是 Redis 服务器的主机名或 IP 地址,port是端口号,db是要使用的数据库编…

指纹浏览器VS虚拟机,在跨境电商中用哪个更好?

在当今的数字世界中,隐私和安全变得越来越重要。尤其是跨境电商卖家来说,经常需要网络上执行环境独立的操作,例如账号运营、在线购物、网上银行、社交媒体管理等。 为了保护账号隐私与做好账号防关联隔离,人们经常寻求指纹浏览器…

Windows-Server-2016/2019绕过WindowsDefender

当获得了一个webshell的时候,下一步要反弹个shell回来 在尝试了https://github.com/trustedsec/unicorn独角兽失败之后,找到了一篇使用golang将shellcode注入到内存的文章 Bypassing Antivirus with Golang - Gopher it! | JUMPSEC LABS GitHub - brimst…

9.Java基础概念-面向对象

欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 Facts speak louder than words! 类和对象 类&#xff…

mmyolo训练模型报错:ValueError: Key img_path is not in available keys解决办法

使用mmyolo训练模型 的时候报错:ValueError: Key img_path is not in available keys. Traceback (most recent call last): File “tools/train.py”, line 123, in main() File “tools/train.py”, line 119, in main runner.train() File “/root/anaconda3/en…

基于Ubuntu22.04 安装SSH服务

安全外壳协议(Secure Shell,简称 SSH)是一种在不安全网络上用于安全远程登录和其他安全网络服务的协议。 SSH 由 IETF 的网络小组(Network Working Group)所制定,SSH 为建立在应用层基础上的安全协议。SSH…

Linux下进程间的通信--管道

关于进程间的通信 Linux进程间通信(Inter-Process Communication,IPC)是指在多个进程之间传输数据或信号的一些方法。由于Linux中的进程有各自独立的地址空间,因此它们不能直接访问对方的内存。为了实现进程间的通信,…

python探索分形和混沌

简单产生复杂,混沌孕育秩序 0. 引言 a. 分形 fractal 【也叫碎形】 分形是一种具有自相似性和复杂结构的几何图形。在分形结构中,无论放大多少次,局部的结构特征都与整体结构相似。这种特性在自然界中广泛存在,比如树木枝干、山…

目前AI 辅助代码生成是否将成为未来编程的主流?

最强AI视频生成:小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频百万播放量https://aitools.jurilu.com/ 我的答案是 肯定的 ! AI辅助代码生成正在迅速崛起,将会成为未来编程的主流趋势。 当然这里的问题是"…

代码随想录算法训练营第二十三天(回溯 二)

力扣题部分: 39. 组合总和 题目链接:. - 力扣(LeetCode) 题面: 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以…

Windows系统,查看本机端口被哪个进程占用

1 打开CMD 快捷键 WinR,输入cmd,确定,打开命令行窗口。 2 查看端口的进程PID netstat -aon|findstr "80" 3 根据进程PID查看应用名称 tasklist|findstr "1468" 4 如果想关掉该进程,在任务管理器结束进程既…

「数组」数组双指针算法合集:二路合并|逆向合并|快慢去重|对撞指针 / LeetCode 88|26|11(C++)

目录 概述 1.二路合并 思路 复杂度 Code 2.逆向合并 思路 复杂度 Code 3.快慢去重 思路 复杂度 Code 4.对撞指针 思路 复杂度 Code 总结 概述 数组的线性枚举是我们学习编程时遇到的第一种枚举手段。但是它看起来有点愚蠢:只有一个索引i承担全部…

美食攻略系统---附源码99630

摘要 本论文旨在探讨如何利用SpringBoot技术开发一个美食攻略系统。系统将按照软件开发流程,采用B/S架构和面向对象编程思想进行项目开发。在引言部分,将介绍美食攻略系统的背景和开发目的,后续章节将依据软件开发流程,对系统进行…

电路笔记(PCB):数字信号的带宽与上升沿时间经验公式 BW = \frac{0.35}{T_r}

数字信号的带宽由上升沿决定 1. 传输线路的带宽如果小于信号的带宽就会产生失真 带宽限制和失真:当信号通过带宽受限的传输线路时,如果线路的带宽小于信号的带宽,信号的高频成分将被削弱或完全滤除。这种削弱会导致信号失真,特别…

Luma 1.5正式发布,文生视频加强真实感,时长最长5秒

距离上次版本发布仅过去了两个月,Luma AI再次发布了升级版本Dream Machine 1.5。新版本具有更好的文本到视频转换、更智能地提示理解、自定义文本渲染和改进图像到视频的功能。 得益于Luma AI对所有公众开放,任何人都可以免费试用,平台用户在…