【问题标题】:Sublime Text 3 Stop Auto-Complete From Committing on 'Space'Sublime Text 3 停止自动完成提交“空间”
【发布时间】:2015-07-31 20:23:39
【问题描述】:

在 Sublime Text 3 中,是否有任何方法可以阻止按 space 时自动完成提交?我在设置中看到了"auto_complete_commit_on_tab": false 选项,但没有任何东西可以阻止按 space 键提交所选条目。

也许我可以使用"auto_complete_selector""auto_complete_triggers" 设置的某种组合?任何帮助将不胜感激。

更新

要重新创建,请打开一个新缓冲区并验证语法是否设置为纯文本。写

Blah
Test
Stuff
More Text

现在按 ctrl+space(或任何您设置的热键)打开完成列表。使用箭头键导航到其中一个选项,然后按 space。这将自动选择突出显示的选项,就像您按了 enter (或 tab 如果您将 "auto_complete_commit_on_tab" 设置为 true)。

我想阻止 Sublime Text 假设 space 意味着我想选择突出显示的完成。

【问题讨论】:

  • 默认情况下,Sublime Text 不会触发任何空间自动完成。你是否使用 Sublime 中的任何包来自动完成?
  • 我刚刚下载了 Windows 64 位便携版,没有安装包管理器或任何包(默认包除外),我遇到了同样的问题。
  • 啊,现在您的问题更清楚了,感谢您的更新。但我猜这种行为是不可配置的。

标签: python autocomplete settings sublimetext3 sublimetext


【解决方案1】:

我问这个问题是因为我正在为 CucumberGherkin 语言开发一个自动完成包 (Gherkin Auto-Complete Plus)。由于该语言使用人类可读的文本,因此对空格的提交使其实际上毫无用处。

因为我想在键入时显示自动完成结果(就像您在 IDE 中看到的那样),所以我在我的包中管理所述结果的显示。解决方案很hacky,但它有效。我从SublimeCodeIntel 包中得到了这个想法。

实现见gherkin_event_listener.py

首先,我在 GherkinEventListener 类上定义了一个 _show_auto_complete 方法。

def _show_auto_complete(self, view):
    def _show_auto_complete():
        view.run_command('auto_complete', {
            'disable_auto_insert': True,
            'api_completions_only': True,
            'next_completion_if_showing': False,
            'auto_complete_commit_on_tab': True,
        })
    # Have to set a timeout for some reason
    sublime.set_timeout(_show_auto_complete, 0)

注意必须设置超时,即使是0

然后在GherkinEventListeneron_modified方法中,我这样做了:

view.settings().set('auto_complete', False)
pos = view_sel[0].end()
next_char = view.substr(sublime.Region(pos - 1, pos))

if next_char in (' ', '\n'):
    view.run_command('hide_auto_complete')
    return

view.run_command('hide_auto_complete')
self._show_auto_complete(view)
self._fill_completions(view, pos)

注意,补全必须在调用_show_auto_complete之后填写,否则填写时会设置为false,不会显示。

【讨论】:

    猜你喜欢
    • 2013-07-05
    • 1970-01-01
    • 2015-03-14
    • 2015-11-22
    • 1970-01-01
    • 2019-08-02
    • 1970-01-01
    • 2019-03-28
    • 2021-02-13
    相关资源
    最近更新 更多