python - 在句点 (`self` 关键字之后 Python 的烦人的 sublime 文本自动完成)

标签 python autocomplete sublimetext3 sublimerepl

我正在使用 sublime text 3 进行 python 开发。我在输入时打开了自动完成功能,这很有效。我希望,当我键入一个对象名称后跟一个句点时,会弹出一个对象的方法/属性列表。它没有发生,所以我按 Tab

import time
time.[TAB]

现在发生的事情,真是太奇怪了! . 被替换为 self.,所以我最终得到了

import time
timeself.

我正在查看所有设置文件,我尝试了包 python completionscode intelcode complice,但没有一个禁用它“功能”,让我抓狂!

最后,我找到了 Jedi 包,它为文本编辑器解决了这个问题。但是我在解释器窗口中仍然有问题(package SublimeREPL)。顺便说一句,如果我同时安装 Jedicode 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/

相关文章:

python - Pandas:计算满足条件时的列之间的时间

python - 使用 SWIG 包装 C/C++ 库

javascript - jquery:预填充自动完成字段

node.js - 符号链接(symbolic link) SublimeText3 构建系统问题(Mac 到 PC)

python - 如何使用 openpyxl 仅解析工作簿中的特定工作表 - 或者如何忽略空工作表?

Python 在类定义中实例化类

autocomplete - 如何在 Sublime Text 3 中添加自定义自动完成?

java - 关闭 AutoCompleteTextView 下拉列表

git - Git历史记录作为常规文件

java - 在 Sublime Text 3 中导入自定义 java 包