我正在使用 sublime text 3 进行 python 开发。我在输入时打开了自动完成功能,这很有效。我希望,当我键入一个对象名称后跟一个句点时,会弹出一个对象的方法/属性列表。它没有发生,所以我按 Tab
。
import time
time.[TAB]
现在发生的事情,真是太奇怪了! .
被替换为 self.
,所以我最终得到了
import time
timeself.
我正在查看所有设置文件,我尝试了包 python completions
、code intel
和 code complice
,但没有一个禁用它“功能”,让我抓狂!
最后,我找到了 Jedi
包,它为文本编辑器解决了这个问题。但是我在解释器窗口中仍然有问题(package SublimeREPL
)。顺便说一句,如果我同时安装 Jedi
和 code complice
,REPL 中的自动完成功能似乎会更好,但它会提供一些不相关的废话,例如 %%!
或 %%HTML
。是的,如果我按 [TAB] 两次,我仍然会得到 timeself.
而不是 time.
!
有人知道这是怎么回事吗? .
-> self.
行为来自哪里?如何禁用 %%!
东西?
最佳答案
我自己也遇到过这个问题,很难查到。
问题不是由任何包引起的。我在运行默认构建的 Sublime text 3 后发现。虽然我强烈推荐 Anaconda(如 MattDMo 所述),但安装 Anaconda 时也会出现此问题。
问题:
问题的原因是 Sublime Text 3 附带的默认 Python 片段称为 self.sublime-snippet
,如下所示:
<snippet>
<content><![CDATA[self.]]></content>
<tabTrigger>.</tabTrigger>
<scope>source.python</scope>
<description>self</description>
</snippet>
在 Sublime text 2 中,可以简单地删除此文件,但 ST3 中的默认代码段不是以相同方式存储的,因此无法轻松删除此文件。
解决方案:
This stack overflow answer解释了如何提取一种语言的包信息,在本例中为 Python。然后可以正常删除该片段。
更新:
由于这个问题,该片段现已从源代码中删除。可能包含在下一次更新中。来源:https://github.com/sublimehq/Packages/issues/473
关于python - 在句点 (`self` 关键字之后 Python 的烦人的 sublime 文本自动完成),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36940729/