Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vim 调整python自动完成行为_Vim_Autocomplete_Flask_Aptana_Python Idle - Fatal编程技术网

Vim 调整python自动完成行为

Vim 调整python自动完成行为,vim,autocomplete,flask,aptana,python-idle,Vim,Autocomplete,Flask,Aptana,Python Idle,我一直在使用Aptana与pydev和IDLE来学习python2.7。它在帮助我学习方面做了相当大的工作,除了当我遇到这个教程时。其中有一行来自flask.ext.sqlalchemy import sqlalchemy,这导致了一个db=sqlalchemy行,在Aptana中没有帮助,没有文档字符串,也没有可能包含的示例。更糟糕的是,所有这些: class User(db.Model): id = db.Column(db.Integer, primary_key = True)

我一直在使用Aptana与pydev和IDLE来学习python2.7。它在帮助我学习方面做了相当大的工作,除了当我遇到这个教程时。其中有一行来自flask.ext.sqlalchemy import sqlalchemy,这导致了一个db=sqlalchemy行,在Aptana中没有帮助,没有文档字符串,也没有可能包含的示例。更糟糕的是,所有这些:

class User(db.Model):
    id = db.Column(db.Integer, primary_key = True)
    nickname = db.Column(db.String(64), index = True, unique = True)
    email = db.Column(db.String(120), index = True, unique = True)
    role = db.Column(db.SmallInteger, default = ROLE_USER)
是红色的,不知道如何把它拆开来学习它的语法。然而,当我这样做时:

from flask.ext.sqlalchemy import SQLAlchemy
from flask import Flask
app = Flask(__name__)
db = SQLAlchemy(app)
class User(db.Model):
    id = db.Column(db.Integer,primary_key = True)
在IDLE中,我得到了自动完成,文档字符串,我可以看到还有什么可以进去,我可以学习

我认为答案会存在于一个新的类似IDE的环境中,我在脑海中想到VIM可能会有所帮助。我在windows上,所以GIT、MinGW、TortoiseHG、_vimrc、vimfiles、{autoload、bundle}、pathogen.vim、jedi vim、从源代码构建vim出于某种原因,我一直发现没有启用python的vim并不容易,考虑到第一次暴露以及所有的问题。所以我有一个可以编辑python代码的vim,从flask.ext.sqlalchemy导入vim中的sqlalchemy与Aptana中的结果相同,没有帮助

有人能向我解释为什么IDLE能够提供帮助,而Aptana/Pydev和Vim不能?有人能告诉我他们能帮什么忙吗

这是烧瓶里的东西。外部。初始。py

# -*- coding: utf-8 -*-
"""
    flask.ext
    ~~~~~~~~~

    Redirect imports for extensions.  This module basically makes it possible
    for us to transition from flaskext.foo to flask_foo without having to
    force all extensions to upgrade at the same time.

    When a user does ``from flask.ext.foo import bar`` it will attempt to
    import ``from flask_foo import bar`` first and when that fails it will
    try to import ``from flaskext.foo import bar``.

    We're switching from namespace packages because it was just too painful for
    everybody involved.

    :copyright: (c) 2011 by Armin Ronacher.
    :license: BSD, see LICENSE for more details.
"""


def setup():
    from ..exthook import ExtensionImporter
    importer = ExtensionImporter(['flask_%s', 'flaskext.%s'], __name__)
    importer.install()


setup()
del setup

因此,在我的示例中,从flask.ext.sqlalchemy导入sqlalchemy转换为在站点包中查找flask_sqlalchemy.py,并在该文件中查找sqlalchemy,在本例中,它是一个大类。如何让Aptana和vim像IDLE一样看到这一点?

这解决了问题,但我使用了C:\Python27\Lib;C:\Python27\DLLs;C:\Python27\Lib;C:\Python27\Lib\site包作为我的变量值,我在pydev中删除并恢复了我的解释器,似乎已经工作了。

+1因为我深入了解了这一点!您可能需要针对Aptana/您的VIm插件的Python支持提交一个bug。仅供参考,您现在可以跳过导入钩子,从flask_sqlalchemy导入,而不是从外观更好的flask.ext.sqlalchemy导入。如果IDLE有效,为什么要尝试使用VIm?