VIM YouCompleteMe(ycm) 对于Python3第三方库的自动补全【部分解决】

问题:VIM 用YouCompleteMe(ycm)自动补全插件时,只能支持Python3 的标准库的自动补全,而不能自动补全第三方库的内容。

环境:Mac+VIM 8.0+vundle+ycm+python3

解决:

尝试对Python3第三方库的自动补全进行配置。

1)在网上查阅了很多资料,至今未能解决。

首先是官网https://github.com/Valloric/YouCompleteMe#working-with-third-party-packages里的安装介绍。

照着操作完全没有起作用,第三方库还是联想不起来。

根据查阅的资料,ycm实际是用的jedi的模块和功能来补全python,因此参考https://vi.stackexchange.com/questions/2403/vim-code-completion-for-python-3的意见,直接下载jedi并安装。

git clone --recursive https://github.com/davidhalter/jedi-vim.git ~/.vim/bundle/jedi-vim

然后在~/.vimrc中添加:

"为了Python3的第三方库安装Jedi插件
Plugin 'davidhalter/jedi-vim' "===============================Jedi==================================
if has('python3')
let g:loaded_youcompleteme = 1 " 判断如果是python3的话,就禁用ycmd。
let g:jedi#force_py_version = 3
let g:pymode_python = 'python3'
endif
"===============================Jedi===================================

但是实际运行起来会报错,提示在Python的目录下没有找到jedi.py的文件,于是再安装一个jedi的库。

pip3 install jedi

结果,还是不行;而且jedi的匹配需要用到很多快捷键。因此直接放弃。还是回头来找ycmd的实现。

2)重新查阅官方文件。检查配置,首先清除多余的配置,注意:清干净!

在~/.vimrc中添加:

let g:ycm_global_ycm_extra_conf = '~/.ycm_extra_conf.py' 

然后按照官方指导老老实实的重新配置.ycm_extra_conf.py。按照官方的说明,加上Python语言有一些了解,对  ~/.vim/bundle/YouCompleteMe下的.ycm_extra_conf.py做如下更改(老规矩,更改之前先备份),并拷贝到$HOME目录:

def PythonSysPath( **kwargs ):
sys_path = kwargs[ 'sys_path' ]
改为:
def PythonSysPath( **kwargs ):
sys_path = kwargs[ 'sys_path' ]
sys_path.insert( 1, '/path/to/third_party/package' )
return sys_path
cp ~/.vim/bundle/YouCompleteMe/.ycm_extra_conf.py ~/

然后重启vim,执行:YcmCompleter GoTo 就可以看到部分效果了。不是所有都能引用,但是比原来一点没有补全要强的太多了。

VIM YouCompleteMe(ycm) 对于Python3第三方库的自动补全【部分解决】的更多相关文章

  1. Vim使用YouCompleteMe达到类似IDE的代码提示、补全,以及其他实用设置

    接触Linux有两年了,vim还是只会简单的操作.最近实在受不了sublime的代码提示,决定花点时间来配置下vim.本文讲自己认为方便的vim配置,称不上完美,只讲究简单实用. 使用 ctags 主 ...

  2. Vimer的福音 新时代的Vim C++自动补全插件 clang_complete

    使用vim的各位肯定尝试过各种各样的自动补全插件,比如说大名鼎鼎的 OmniCppComplete .这一类的插件都是对 Ctags 生成的符号表进行字符串匹配来获得可能的补全项.他们在编写 C 代码 ...

  3. 新时代的Vim C++自动补全插件 clang_complete

    Vimer的福音 新时代的Vim C++自动补全插件 clang_complete   使用vim的各位肯定尝试过各种各样的自动补全插件,比如说大名鼎鼎的 OmniCppComplete .这一类的插 ...

  4. [转载]启用 VIM 中的 Python 自动补全及提示功能

    转载: http://zhongwei-leg.iteye.com/blog/941474 周围的同事不喜欢使用 VIM 写 Python 代码的原因之一就是,VIM 不能像 Visual Studi ...

  5. 解决VS Code开发Python3语言自动补全功能不带括号的问题

    Visual Studio Code(以下简称VS Code)用来开发Python3,还是很便利的,本身这个IDE就是轻量级的,才几十兆大小,通过安装插件的方式支持各种语言的开发.界面也美美哒,可以在 ...

  6. Linux --- vim 安装、支持python3的配置、插件自动补全YCM的安装配置及全过程错误总结

    1.git(用来下载vim和相关插件) sudo apt-get install git 2,cmake(用来编译clang-llvm) sudo apt-get install build-esse ...

  7. 如何安装vim自动补全插件YouCompleteMe(YCM)

    Vim是全平台上一个高度可拓展的编辑器.它本身只是一个简陋的编辑器,但是因为有各种插件而变得强大.使用Vim编写代码就不免遇到代码补全的问题.常用的代码补全插件有两个:日本人shougo写的neoco ...

  8. Vim自动补全神器–YouCompleteMe

    一.简介 YouCompleteMe是Vim的自动补全插件,与同类插件相比,具有如下优势 1.基于语义补全 2.整合实现了多种插件 clang_complete.AutoComplPop .Super ...

  9. Vim自动补全神器–YouCompleteMe

    YouCompleteMe的特别之处 基于语义补全 总所周知,Vim是一款文本编辑器.也就是说,其最基础的工作就是编辑文本,而不管该文本的内容是什么.在Vim被程序员所使用后,其慢慢的被肩负了与IDE ...

  10. Vim自动补全神器:YouCompleteMe

    第一次听说这个插件还是在偶然的情况下看到别人的博客,听说了这个插件的大名.本来打算在实训期间来完成安装的,无奈网实在不给力,也就拖到了回家的时候.在开始准备工作的时候就了解到这个插件不是很容易安装,安 ...

随机推荐

  1. [Python] 超简单的 超星学习通自动签到

    目录 概述 代码 其他的 文件编码问题 windows 和 linux下换行符不同的问题 概述 今天两节课的签到都错过了 /(ㄒoㄒ)/~~ 所以决定花点时间做一个自动签到的工具 经过观察发现超星的结 ...

  2. C++ //常用集合算法 //set_intersection //求俩个容器的交集 //set_union //求两个容器的并集 //set_difference //求两个容器的差集

    1 //常用集合算法 2 //set_intersection //求俩个容器的交集 3 //set_union //求两个容器的并集 4 //set_difference //求两个容器的差集 5 ...

  3. Educational Codeforces Round 158 (Rated for Div. 2)C. Add, Divide and Floor(思维/数学)

    C. Add, Divide and Floor 这里我们选择固定最小数不变,然后每次让其他数向最小数靠近,模拟一下可以发现,只要最大值变为和最小值一样,其他都会和最小值一样. #include &l ...

  4. picgo+gitee+typora实现博客图床

    背景 在微信公众号编写了推文后,从推文里面复制内容出来在其他平台发布,会出现图片展示不出来的情况,原因是因为该图片是微信的链接,被限制在其他平台显示. 诉求 编写的推文在多个平台都能进行发布,图片在多 ...

  5. 虚拟机和开发板之间通过NFS互联

    简介 NFS是Network File System的首字母缩写.它是一种分布式协议,使客户端可以访问远程服务器上的共享文件.它允许网络中的计算机之间通过TCP/IP网络共享资源. 配置过程 安装NF ...

  6. 函数指针 int (*add)( )

    原文 首先它是一个指针,一个指向函数的指针,在内存空间中存放的是函数的地址: int Add(int x,int y) { return x+y; } int main() { printf(&quo ...

  7. arch安装deep-wine-wechat时,跳过md5检测的方法

    yay -S --mflags --skipinteg deepin-wine-wechat 这条命令是的我们跳过了md5检测! 微信的安装位置:C:\Program Files\Tencent\We ...

  8. 华为sound x智能音箱初体验

    外观颜值   在这个网红遍地的年代,好看的皮囊是那么的重要.很多东西,买与不买,只是你在电脑的橱上看它一眼.颜值对一个消费电子产品来说,在这个虚拟的互联网世界中是那么的重要.sound x的初次看来, ...

  9. 没有有线网卡的笔记本如何在PVE下All in one?—NAS + Linux +win下载机

    没有有线网卡的笔记本在PVE下All in one | NAS + Linux + Win下载机 (保姆级未完成版) 目录: 1.前言 2.PVE的安装 3.PVE联网前的准备工作 4.PVE使用无线 ...

  10. C++ Qt开发:QUdpSocket网络通信组件

    Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用QUd ...