解决pydiction在(后无法补全的问题

本文介绍了解决pydiction在Vim中无法正确工作的问题,通过修改配置文件及加入必要的函数定义来实现代码补全功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这两天因为在(后无法使用pydiction的补全着急上火,找了一大堆的文章都没有结果,因为对vim的脚本和内置对象基本不懂所以只能瞎猫碰死耗子一点点试验,好在还是解决了

将python_pydiction.vim文件中110行最后的'('删除以后,再写下面的代码

s = socket.socket(socket.AF<tab>

就能出现AF_INET等一堆提示了,不过在使用了AutoComplPop插件的时候你写到socket.的时候提示的是vim自己的omni的东西

 

在网上给出的配置都会有这行autocmd FileType python set complete+=k$VIM/tools/pydiction-1.2/complete-dict iskeyword+=.,( 我试验的时候加了不但没有任何效果,同时还会让AutoComplePop插件是去作用,所以只要按照官网上写的加入这句

let g:pydiction_location='E:/Program Files/Vim/vimfiles/ftplugin/pydiction/complete-dict就够了。

 

最后说一点如果你使用了AutoComplPop插件时在写到s = socket.socket(socket.AF时就会报错“Unknown function: GetSnipsInCurrentScope”查询AutoComplPop的官网里面有一段说明就是你要下载snipMate插件,并且在plugin/snipMate.vim中加如下一段:

fun! GetSnipsInCurrentScope() 

    let snips = {} 

    for scope in [bufnr('%')] + split(&ft, '/.') + ['_'] 

      call extend(snips, get(s:snippets, scope, {}), 'keep') 

      call extend(snips, get(s:multi_snips, scope, {}), 'keep') 

    endfor 

    return snips

endf

 

这样就不会报错了,我理解是当你输入socket.AF的时候AutoComplPop会去查找omni的智能提示没有找到又去找snip的东西,所以要加入这个函数定义。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值