我希望标签在Sublime Text中插入一个标签,但它会激活自动完成功能

时间:2015-03-28 12:48:09

标签: ide sublimetext sublimetext3 keymaps

我正在使用Sublime CodeIntel我喜欢的autocomplete,但是当我尝试插入标签时,它会弹出并插入单词。我希望tab总是插入一个标签,除非我的光标前面的字符是一个字母。

我认为这可以通过用户keymap来完成,用于查看上下文的tab键,但我不知道该怎么做。

3 个答案:

答案 0 :(得分:0)

如果你在Windows上,快速解决将使用Autohotkey。 您可以将任何键分配给4个空格,如下所示

`::
Send {Space 4} ; when pressed ` enters four times Space bar
Return

答案 1 :(得分:0)

以下内容应该有效。您可能需要使用键绑定的顺序。将以下内容添加到用户密钥绑定

 {
    "keys": ["tab"], "command": "insert", "args": {"characters": "\t" }, "context": [
        { "key": "preceding_text", "operator": "regex_contains", "operand": "[^a-zA-Z]$", "match_all": true }
    ]
 }

请注意,我没有安装SublimeCodeIntel,所以不确定它会如何表现。

作为一个很好的调试技巧,请在ST控制台中输入sublime.log_commands(True)以查看正在为特定键绑定执行的命令。可能对确认命令正在按预期运行非常有用。

答案 2 :(得分:0)

尝试此操作...覆盖Tab键以充当缩进键插入标签字符

偏好设置>关键绑定

[
    { "keys": ["tab"], "command": "insert", "args": {"characters": "\t"} },
    { "keys": ["tab"], "command": "reindent", "context":
        [
            { "key": "setting.auto_indent", "operator": "equal", "operand": true },
            { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
            { "key": "preceding_text", "operator": "regex_match", "operand": "^$", "match_all": true },
            { "key": "following_text", "operator": "regex_match", "operand": "^$", "match_all": true }
        ]
    },
    { "keys": ["tab"], "command": "indent", "context":
        [
            { "key": "text", "operator": "regex_contains", "operand": "\n" }
        ]
    },
    { "keys": ["tab"], "command": "next_field", "context":
        [
            { "key": "has_next_field", "operator": "equal", "operand": true }
        ]
    }
]