当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《Vim,Python和Django自动完成(pysmell?)》经验,为你挑选了3个好方法。

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

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

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

谢谢.



1> bchang..:

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

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

    使用该setup.py install命令安装PySmell .

    PYSMELLTAGS通过转到您的site-packages/django目录并运行以下命令为django 生成文件:pysmell . -o ~/PYSMELLTAGS.django

    将该文件复制到项目目录,然后运行pysmell .以生成项目PYSMELLTAGS文件

    确保pysmell在你的PYTHONPATH(export PYTHONPATH=${PYTHONPATH}:/path/to/pysmell/)

    运行vim(vim .)

    来源pysmell.vim(:source /path/to/pysmell/pysmell.vim)

    设置自动完成命令(:set omnifunc=pysmell#Complete)

    键入^ 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



2> Dave Halter..:

正如我在其他地方写的那样,我开发了绝地.我认为它比现有的所有解决方案(甚至是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



3> Lakshman Pra..:

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

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

干得好

推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有