Sublime Text:接受建议的自动完成而不展开它

Sublime Text: Accept Suggested Autocomplete Without Expanding it

在 Sublime Text 中,我安装了 Emmet 以便我可以进行禅宗编码。现在,问题是,当我输入并获得自动完成建议时,一旦我接受该自动完成建议(通过输入制表符、输入,甚至按 space 栏),建议的标签就会展开;这导致我无法继续 zen 编码。

举个例子,假设我想插入一个有 6 个 <option> 子元素的 <select>。如果我输入 select>opt,那么自动完成会建议 option,但是一旦我接受 option,它就会扩展为 select<option></option>

我想要的是接受 option,但它不会扩展到 <option></option>

有没有办法做到这一点?

在 Sublime Text 中,补全由一个 2 元组组成,其中包含显示的字符串和插入的 characters/snippet。我不知道是否可以只插入显示的字符串。但是如果你搜索任何方式,有一个方法可以建立:修改html标签补全文件的源代码。

安装PackageResourceViewer,然后按ctrl+shift+p写入PackageResourceViewer: Open Resource。 SelectHTML >>> html_completions.py。 如果您保存文件,它将隐藏(而不是覆盖)原始完成文件。因此只需将其删除即可获得原始行为。 在这个文件中:

  • 15return (tag + '\tTag', tag + '>[=14=]</' + tag) 替换为 return (tag + '\tTag', tag)
  • 245completion_list = [(pair[0], '<' + pair[1]) for pair in completion_list] 替换为 completion_list = [(pair[0], pair[1]) for pair in completion_list]

现在它应该插入标签名称而不是整个标签。

其实答案很简单。在您的示例中,当您获得 option 的自动完成建议时,您将获得其中的 2 个。一个是标签,另一个是文本。使用 Ctrl+Space 查看所有建议,select option 的文本版本而不是标签版本。