【发布时间】:2013-03-19 20:47:09
【问题描述】:
我如何在键入 .(dot) 时触发自动完成弹出窗口,例如 Python 作用域?
为了解决@skuroda 评论,我将扩展问题:
如果在首选项中设置了"auto_complete": true(默认设置),则在按下任何字符时都会触发 ST 中的自动完成。我觉得这很烦人,因为我不想让它在单键按下时触发,所以我把它关掉了。
html_completions.py 只是检查哪个是当前字符的前一个字符,并提供完成列表,但不会更改自动完成行为或设置触发它的内容。
OTOH,有auto_complete_triggers 偏好,但这并不能解决我的问题,因为它取决于auto_complete 偏好:
- 如果
auto_complete首选项设置为 false,auto_complete_triggers中定义的触发器将不会触发完成 - 如果它设置为 true,那么我会再次在按下任何键时自动完成,而不仅仅是像大多数 Python 感知编辑器所做的那样
另一个可接受的解决方案是,如果我可以定义一些阈值,例如 4 个字符,以便自动完成不会在自动按下单个键时显示,而是在 4 个字符之后显示。
【问题讨论】:
-
这可能是不可能的 - 请参阅这个重复的问题:stackoverflow.com/questions/15684193/…
-
感谢@MattDMo。您是否知道允许此功能的第三方软件包?或者是否可以通过 Python 以某种方式访问此功能?
-
我不这么认为,因为看起来这个功能是硬编码的,我在 API 中找不到任何东西来覆盖它。 SublimeCodeIntel 是一个很棒的插件,可以极大地扩展内置的自动完成功能,我强烈推荐安装它。我还没有完全看透 its API,因为它很大而且相关的库不在 python 中,所以可能有办法做到这一点,但我还不知道。
-
当你输入点时你在寻找什么行为。如果您正在寻找它不充当单词分隔符,请参阅我在该问题中的回答。如果您希望在按下点时出现所有可用的自动完成选项,请尝试添加“auto_complete_trigger”。有关 HTML 示例,请参阅默认首选项。如果您试图获得其他行为,请提供更多详细信息。 :)
-
谢谢!我不想更改 Python 的单词定义。我已经查看了
html_completions.py,但据我所知,它没有提供解决方案,我将添加相关信息以避免冗长的评论。