VIM YouCompleteMe(ycm) 对于Python3第三方库的自动补全【部分解决】
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第三方库的自动补全【部分解决】的更多相关文章
- Vim使用YouCompleteMe达到类似IDE的代码提示、补全,以及其他实用设置
接触Linux有两年了,vim还是只会简单的操作.最近实在受不了sublime的代码提示,决定花点时间来配置下vim.本文讲自己认为方便的vim配置,称不上完美,只讲究简单实用. 使用 ctags 主 ...
- Vimer的福音 新时代的Vim C++自动补全插件 clang_complete
使用vim的各位肯定尝试过各种各样的自动补全插件,比如说大名鼎鼎的 OmniCppComplete .这一类的插件都是对 Ctags 生成的符号表进行字符串匹配来获得可能的补全项.他们在编写 C 代码 ...
- 新时代的Vim C++自动补全插件 clang_complete
Vimer的福音 新时代的Vim C++自动补全插件 clang_complete 使用vim的各位肯定尝试过各种各样的自动补全插件,比如说大名鼎鼎的 OmniCppComplete .这一类的插 ...
- [转载]启用 VIM 中的 Python 自动补全及提示功能
转载: http://zhongwei-leg.iteye.com/blog/941474 周围的同事不喜欢使用 VIM 写 Python 代码的原因之一就是,VIM 不能像 Visual Studi ...
- 解决VS Code开发Python3语言自动补全功能不带括号的问题
Visual Studio Code(以下简称VS Code)用来开发Python3,还是很便利的,本身这个IDE就是轻量级的,才几十兆大小,通过安装插件的方式支持各种语言的开发.界面也美美哒,可以在 ...
- Linux --- vim 安装、支持python3的配置、插件自动补全YCM的安装配置及全过程错误总结
1.git(用来下载vim和相关插件) sudo apt-get install git 2,cmake(用来编译clang-llvm) sudo apt-get install build-esse ...
- 如何安装vim自动补全插件YouCompleteMe(YCM)
Vim是全平台上一个高度可拓展的编辑器.它本身只是一个简陋的编辑器,但是因为有各种插件而变得强大.使用Vim编写代码就不免遇到代码补全的问题.常用的代码补全插件有两个:日本人shougo写的neoco ...
- Vim自动补全神器–YouCompleteMe
一.简介 YouCompleteMe是Vim的自动补全插件,与同类插件相比,具有如下优势 1.基于语义补全 2.整合实现了多种插件 clang_complete.AutoComplPop .Super ...
- Vim自动补全神器–YouCompleteMe
YouCompleteMe的特别之处 基于语义补全 总所周知,Vim是一款文本编辑器.也就是说,其最基础的工作就是编辑文本,而不管该文本的内容是什么.在Vim被程序员所使用后,其慢慢的被肩负了与IDE ...
- Vim自动补全神器:YouCompleteMe
第一次听说这个插件还是在偶然的情况下看到别人的博客,听说了这个插件的大名.本来打算在实训期间来完成安装的,无奈网实在不给力,也就拖到了回家的时候.在开始准备工作的时候就了解到这个插件不是很容易安装,安 ...
随机推荐
- 详解Python魔法函数,__init__,__str__,__del__
1.简介 Python作为一门灵活而强大的编程语言,提供了许多特殊的方法,被称为魔法函数(Magic methods).这些魔法函数以双下划线开头和结尾,能够让我们自定义类的行为,使得Python更加 ...
- BKP备份寄存器&RTC实时时钟
UNIX时间戳 time.h 三条路,上面主要作为系统时钟,中间的作为RTC时钟,下面的作为看门狗的时钟 与RTC有关的外部晶振(主电源断电不停)一般都i是32.768KHZ 2^15=32 ...
- python计算二进制bin文件hash值
一 hash的价值 hash值的唯一性仅仅在是同一个文件的情况下得到了同样的hash值,而哪怕错误一个字节也会得到不一样的hash值. hash值得最大价值就是唯一性.这样在bin文件检查和校验这块用 ...
- linux系统运行时参数命令、网络、磁盘参数和日志监控
重点内容 linux基础命令和工具 CPU性能监控 内存性能监控 文件IO性能监控 网络IO监控 1 linux基础命令和工具 1.1 Grep搜索字符 grep命令用于在文件中执行关键字搜索,并显示 ...
- day01-项目介绍+SSM环境搭建
项目介绍+SSM环境搭建 1.项目功能/界面 SSM整合项目界面:使用Vue完成 技术栈:前后端分离开发,前端框架Vue3+后端框架SSM 前端框架-Vue3 后端框架-SSM(SpringMVC+S ...
- java中float内存存储原理
规格化表示: 浮点数采用的是IEEE Standard 754 Floating Point Numbers标准 float占用4个字节,和int一样,也是32bit. 第1个bit表示符号,0表示正 ...
- iOS端创建ReactNative容器第一步:打出jsbundle和资源包
react-native的打包流程是通过执行react-native bundle指令进行的. 添加构建指令 修改RN项目中的package.json文件,先其中添加构建命令build-relea ...
- uni之this作用域
目录介绍 01.先看一个案例 02.看一下解决方案 01.先看一个案例 代码如下所示 发现了点击按钮1可以更新title内容,但是点击按钮2却无法更新title内容.这个究竟是为什么呢? <te ...
- 记录--uniapp登录流程详解uni.login
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 uni.login(OBJECT)登录 H5平台登陆注意事项: 微信内嵌浏览器运行H5版时,可通过js sdk实现微信登陆,需要引入一个单 ...
- Python - inspect 模块的简单使用
Python中的inspect模块解析 Python的inspect模块是一个强大的内省工具,允许开发者检查(inspect)活动对象和源代码.它提供了一系列函数,用于获取信息关于正在运行的程序和调用 ...