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. harbor 安装

    下载地址: https://github.com/goharbor/harbor/releases?page=1 下载了多个版本,发现仅v1.10.17版本支持GC清理,所以这里安装的v1.10.17 ...

  2. vscode 两种定位跳转的方法 ctrl+p 方法1 path:行号 方法2 #变量名 - 针对$store变量不好找的方案 方法1可以备注在代码里面

    vscode 两种定位跳转的方法 ctrl+p 方法1 path:行号 方法2 #变量名 - 针对$store变量不好找的方案 方法1可以备注在代码里面 问题 $store的变量不能跳转,有跳转插件也 ...

  3. modalError.vue 错误提示框 vue2 iview

    需求 一个错误提示框,后台需要有换行,默认没有换行,做一个支持换行的全局错误提示函数. 注意 代码只展示原理,直接不能使用,里面有getAc,有需要参考 https://www.cnblogs.com ...

  4. Android Progressbar进度条样式调整为圆角矩形,且改变颜色

    原文地址: Android Progressbar进度条样式调整为圆角矩形,且改变颜色 美工设计的进度条是圆角矩形的,与Android默认的样式有所区别,可以通过样式progressDrawable属 ...

  5. JDK1.8版本java字符串常量池里存的是String对象还是引用?

    转载自http://t.csdn.cn/iD9LD 先下结论:对象! 众所周知,JDK1.8版本中,String常量池已经从方法区中的运行时常量池分离到堆中了,那么在堆中的String常量池里存的是S ...

  6. Spring Boot学习日记10

    今天学习了多环境切换profile 精髓 1.SpringBoot启动会加载大量的自动配置类 2.我们看我们需要的功能有没有在SpringBoot默认写好的自动配置类当中: 3.我们再来看这个自动配置 ...

  7. 原型&继承题目及内容解答

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 1. 代码输出结果 function Person(name) { this.name = name } var p2 = new Per ...

  8. [Oracle]细节、经验

    [版权声明]未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://blog.csdn.net/m0_69908381/article/details/131054454 出自[进步* ...

  9. archlinux virtualbox 启用usb支持

    参照 https://linux.cn/article-15287-1.html 1.安装virtualbox扩展包 (1)从archlinuxcn社区库安装 sudo pacman -S virtu ...

  10. JDBC复习:创建MySQL数据表

    1 try { 2 conn=JDBCUtil.getConnection(); 3 preparedStatement = conn.prepareStatement(DROP_TABLE_1); ...