Vim,Python和Django自动完成(pysmell?)

So8*_*res 47 python django vim

有谁知道如何设置自动完成与python,django和vim很好地协同工作?

我一直在尝试使用pysmell,但我似乎无法正确设置它(或者我可能不知道它是如何工作的).现在,我在django目录中运行pysmell(我正在使用trunk)并将生成的标签移动到我的项目目录,然后我还在项目目录中运行pysmell.但是Vim没有拿起django标签,并且它们没有自动完成.

有谁知道如何在vim中设置自动完成,以便它将在我自己的代码中完成长django函数(如get_object_or_404)以及类/函数?我在谷歌上搜索过但没有找到任何好的资源.

谢谢.

bch*_*ang 30

首先,谢谢你提出这个问题,因为这迫使我自己解决这个问题,这很棒!

这是我用作参考的页面:PySmell v0.6发布:orestis.gr

  1. 使用该setup.py install命令安装PySmell .
  2. PYSMELLTAGS通过转到您的site-packages/django目录并运行以下命令为django 生成文件:pysmell . -o ~/PYSMELLTAGS.django
  3. 将该文件复制到项目目录,然后运行pysmell .以生成项目PYSMELLTAGS文件
  4. 确保pysmell在你的PYTHONPATH(export PYTHONPATH=${PYTHONPATH}:/path/to/pysmell/)
  5. 运行vim(vim .)
  6. 来源pysmell.vim(:source /path/to/pysmell/pysmell.vim)
  7. 设置自动完成命令(:set omnifunc=pysmell#Complete)
  8. 键入^ x ^ o自动完成,它应该工作

我意识到这不是一个可持续的解决方案,但您应该能够将其作为开始使其设置始终有效(例如,将导出添加到.bashrc,将:source添加到.vimrc,设置autocmd FileType python set omnifunc=pysmell#Complete等等.)

如果这足以让您入手,请告诉我.它对我有用!

编辑 我只是将它添加到我的.vimrc中,只要PYSMELLTAGS&PYSMELLTAGS.django文件在我的项目根目录中,它就可以正常工作而无需任何其他工作:

python << EOF
import os
import sys
import vim
sys.path.append("/usr/local/python/lib/python2.5/site-packages")
EOF
exe ":source ~/src/pysmell/pysmell.vim"
autocmd FileType python set omnifunc=pysmell#Complete
Run Code Online (Sandbox Code Playgroud)


Dav*_*ter 13

正如我在其他地方写的那样,我开发了绝地.我认为它比现有的所有解决方案(甚至是PyCharm)要好得多.

https://github.com/davidhalter/jedi-vim

它建立在pythoncomplete上,功能更强大!

它适用于复杂的代码:完成

并具有其他功能: 在此输入图像描述

有一个可能的功能列表:

  • 内置函数/类支持
  • 复杂的模块/功能/类结构
  • 忽略语法和缩进错误
  • 多次退货/收益率
  • 元组赋值/数组索引/字典索引
  • 例外/带有陈述
  • *args/**kwargs
  • 装饰
  • descriptors - > property/staticmethod/classmethod
  • 关闭
  • 生成器(yield语句)/迭代器
  • 支持一些魔术方法:__call__,__iter__,__next__, __get__,__getitem__,__init__
  • 支持list.append,set.add,list.extend等.
  • (嵌套)列表推导/三元表达式
  • 相对进口
  • getattr()/ __getattr__/__getattribute__
  • 函数注释(py3k功能,现在被忽略,但被解析.我不知道如何处理它们.)
  • 类装饰器(py3k功能,也被忽略,直到我找到一个用例,不能用于Jedi)
  • 简单/通常的sys.path修改
  • isinstance 检查if/while/assert


Lak*_*sad 12

alt text http://blog.dispatched.ch/wp-content/uploads/2009/05/vim-as-python-ide.png

您可以使用缓冲区,缓冲区显示,自动完成,甚至Py Doc显示来设置VIM.

干得好