我刚刚开始看Vim jedi插件,它看起来非常令人印象深刻。我使用过的一些Java的一个特性是能够自动添加所需的导入。绝地武士能做到吗?例如,如果我输入一行,例如
arg1 = sys.argv[1]然后调用一些Jedi命令,插件是否可能自动在源文件的顶部插入一条import sys行(如果sys还没有被导入)?
我看过绝地武士的帮助,看不到这样的东西--但我可能漏掉了什么。或者,有没有其他Vim插件可以做到这一点?(它需要对Python语法有一定程度的理解才能做到这一点,这就是为什么我希望绝地能够做到这一点)。
发布于 2016-07-17 16:39:41
目前绝地不做重构。这包括导入添加。整个主题都有一个问题:https://github.com/davidhalter/jedi/issues/667。
要以良好的性能实现此命令并非易事。然而,任何帮助都是非常感谢的。:)
发布于 2016-07-18 17:16:24
顺便说一句,我已经定义了一个可以在lh-dev中按需使用的通用导入功能。我在我的C&C++套件和snippet engine (mu-template)中使用它。
到目前为止,我还没有解析任何东西来添加缺少的import/include语句。正如Dave所说,这一部分会很复杂。相反,我的代码片段知道哪些文件需要导入/包含,如果还没有导入/包含,则导入/包含它们。
这离完美还很远,但这是一个开始。mu-template提供了一个钩子,用于在代码段展开后在文件的开头做一些事情,这就是我调用lh-dev函数的地方。如果其他代码片段引擎提供类似的钩子,您应该能够从代码片段中调用lh#dev#import#add()。
下面是Python的概念验证代码片段(我很少用Python编程,也没有太多的代码片段):https://github.com/LucHermitte/mu-template/blob/master/after/template/python/path-exists.template
https://stackoverflow.com/questions/38411010
复制相似问题