coc.nvm 升级后提示jedi版本太旧解决方案

coc.nvim升级后,大概是coc-python版本在1.2.10以上时,在使用函数功能跳转时,会提示jedi version %s too old, requires >= 0.17.0。这个问题在github上显示已解决,解决方案是安装指定版本的coc-python

CocInstall coc-python@1.2.10

但是这个方法并没有解决我的问题。这个版本的coc-python也是要求jedi版本大于0.17.0的。

因此我将jedi版本更新到了要求版本。

pip3 install jedi
# conda 如果只能安装0.16.0版本的话,可以先pip3安装,然后copy到conda的site-package文件夹下

但是依然报错,信息如下:

is_definition() got an unexpected keyword argument ‘include_setitem’, get_definition() got an unexpected keyword argument ‘include_setitem’

你只需要到你的conda的jedi库文件夹中,找到syntax_tree.py,和filter.py这两个文件,修改相应的is_definitionget_definition即可。

inference/syntax_tree.py
667:    node = tree_name.get_definition(import_name_always=True, include_setitem=True)

inference/filters.py
66:            name for name in names if name.is_definition(include_setitem=True)

删除include_setitem=True即可。


此外,推荐一个python函数跳转的插件jedi-vim
vim-plug安装方法:

Plug 'davidhalter/jedi-vim'

相关配置如下:

let g:jedi#goto_command = "<leader>d"
let g:jedi#goto_assignments_command = "<leader>g"
let g:jedi#goto_stubs_command = "<leader>s"
"let g:jedi#goto_definitions_command = "gd"
let g:jedi#documentation_command = "K"
let g:jedi#usages_command = "<leader>n"
let g:jedi#completions_command = "<C-Space>"
let g:jedi#rename_command = "<leader>r"

这个跳转要比coc自带的要好一些,coc函数跳转默认你对文件进行了修改,当你使用Ctrl-O返回原文件时,需要保存一下跳转文件或者返回一次修改(按一下u)。但是jedi-vim不会对跳转文件进行修改。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值