且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

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

更新时间:2023-08-26 14:52:28

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

First off, thank you for asking this question, as it forced me to figure this out myself and it's great!

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

Here is the page I used as a reference: PySmell v0.6 released : orestis.gr

  1. 使用 setup.py install 命令安装 PySmell.
  2. 转到您的 site-packages/django 目录并运行: pysmell ,为 django 生成 PYSMELLTAGS 文件.-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 自动完成,它应该可以工作
  1. Install PySmell using the setup.py install command.
  2. Generate the PYSMELLTAGS file for django by going to your site-packages/django directory and running: pysmell . -o ~/PYSMELLTAGS.django
  3. Copy that file to your project directory, and then ran pysmell . to generate the project PYSMELLTAGS file
  4. Make sure pysmell is in your PYTHONPATH (export PYTHONPATH=${PYTHONPATH}:/path/to/pysmell/)
  5. Run vim (vim .)
  6. Source pysmell.vim (:source /path/to/pysmell/pysmell.vim)
  7. Set the autocomplete command (:set omnifunc=pysmell#Complete)
  8. Type ^x^o to autocomplete and it should work

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

I realize this is not a sustainable solution, but you should be able to use this as a start to getting it setup to always work (e.g., add the export to your .bashrc, add the :source to your .vimrc, setup autocmd FileType python set omnifunc=pysmell#Complete, etc.)

让我知道这是否足以让您入门.它对我有用!

Let me know if this is enough to get you started. It worked for me!

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

Edit I simply added this to my .vimrc and as long as the PYSMELLTAGS & PYSMELLTAGS.django files are in my project root, it works fine without any other work:

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