R K*_*lev 4 python autocomplete sublimerepl sublimetext3
我正在使用sublime text 3进行python开发。输入时,我已启用自动补全功能。我希望,当我键入一个对象名称后跟一个句点时,将弹出一个对象的方法/属性列表。不会发生,所以我按Tab。
import time
time.[TAB]
Run Code Online (Sandbox Code Playgroud)
现在发生了什么,简直是不可思议!.被替换self.,所以我最终得到
import time
timeself.
Run Code Online (Sandbox Code Playgroud)
我一直在寻找在所有的设置文件,我想包python completions,code intel和code complice,但他们没有禁止这种“特性”,这让我发疯!
最后,我找到了Jedi软件包,它为文本编辑器解决了此问题。但是我仍然在解释器窗口(package SublimeREPL)中遇到问题。顺便说一句,如果我同时安装Jedi和code complice,则REPL中的自动补全似乎效果更好,但是它提供了一些无关紧要的废话,例如%%!或%%HTML。是的,如果我按两次[TAB],我仍然会得到timeself.而不是time.!
有人知道发生了什么吗?.-> self.行为来自何处?如何禁用%%!东西?
我本人有这个问题,要找到它并不容易。
该问题不是由任何包装引起的。我在运行Sublime文本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>
Run Code Online (Sandbox Code Playgroud)
在Sublime文本2中,可以简单地删除此文件,但是ST3中的默认代码段存储方式不同,因此无法轻松删除此文件。
解决方案:
此堆栈溢出答案说明了如何提取语言(在本例中为Python)的软件包信息。然后可以照常删除该代码段。
更新:
由于此问题,该代码段现在已从源代码中删除。可能包含在下一个更新中。资料来源:https : //github.com/sublimehq/Packages/issues/473