1

我正在为 Sublime Text 使用 Anaconda 包。一切都很完美,我喜欢它。事实上,它工作得有点太好了,尤其是 auto_complete。

auto_complete 很热心

每次我在需要一个冒号(def,if,for,class,...)的语句之后写一个冒号(:)时,它都会向我显示一个我无法避免的自动完成列表。每次,我都必须写一个空白并擦除它才能使用 Enter 键并转到下一行。

如果我在不需要的地方写了一个冒号,它将不会打开 auto_complete 列表。如果我关闭 auto_complete,它会阻止它发生,但这并不理想,因为我一般喜欢 auto_complete。

我知道如何为 auto_complete 添加触发器。有没有办法删除特定的触发器(这里是冒号 (:))?

4

1 回答 1

3

以防其他人有同样的麻烦。我在这里找到了答案:https ://github.com/DamnWidget/anaconda/issues/891 。

就像 MattDMo 所说,这是一个错误。建议的临时解决方法是来自 ZitCode 的帖子(请参阅上面的链接以获取源代码):

我找到了一个解决方案(它正在工作,但我认为它应该是一个临时解决方案,因为它只是在输入“:”时禁用完成)在文件 listeners/completion.py 中(可以通过单击“首选项/浏览包”找到' 在 Sublime Text 中,然后打开 Anaconda 文件夹)添加行

if int(sublime.version()) > 4000:
    if view.substr(view.sel()[0].begin() - 1) == ':':
        return 

86线以下view = active_view()功能_complete。该文件应如下所示:

def _complete(self, data: Dict[str, Any]) -> None:

    view = active_view()
    if int(sublime.version()) > 4000:
        if view.substr(view.sel()[0].begin() - 1) == ':':
            return
    proposals = data['completions'] if data['success'] else []
于 2021-06-03T14:51:28.097 回答