有人知道如何设置自动补全来很好地使用python、django和vim吗?

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

有人知道如何在vim中设置自动完成功能,以便在我自己的代码中完成长django函数(比如get_object_或_404)以及类/函数吗?我在谷歌上搜索过,但没有找到任何好的资源.

谢谢你.

推荐答案

首先,感谢你提出这个问题,因为它迫使我自己go 解决这个问题,这太棒了!

下面是我用作参考的页面:PySmell v0.6 released : orestis.gr

  1. 使用setup.py install命令安装pysnose.
  2. 转到site-packages/django目录并运行:pysmell . -o ~/PYSMELLTAGS.django,为Django生成PYSMELLTAGS文件
  3. 将该文件复制到项目目录,然后运行pysmell .以生成项目PYSMELLTAGS文件
  4. 确保你的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,等等).

让我知道这是否足以让你开始.这对我很管用!

Edit 我只需将其添加到我的.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

Django相关问答推荐

在保存新实例之前删除一个实例(Django模型保存方法)

在Django的反向函数中添加动态URL

注册新用户时,对象没有属性';is_active';错误:';NoneType';对象没有属性

Urls.py中路径**kwargs的Django翻译?

按下按钮刷新在html文件中显示的变量

如何在Django中制作一个不 Select 以前日期的日期 Select 器

Django 嵌套事务 - with transaction.atomic()

如何将表单中的用户字段设置为当前登录的用户?

是否有 django 模板过滤器来显示百分比?

可插拔应用程序的Django默认设置约定?

在 Scrapy 中访问 django 模型

在 django 中获取本地时区

django 复数模板

模型 Django 中的 ID 字段

在 Django 中舍入小数点

如何向所有 Django 响应添加 HTTP 标头

在 Celery 任务中运行 Scrapy 蜘蛛

如何获取 pytz 时区的通用名称

过滤查询参数

Django - 指定 Django 管理员应该使用哪个模型管理器