我希望选项卡在 Sublime Text 中插入一个选项卡,但它会激活自动完成
I want tab to insert a tab in Sublime Text but it activates the autocomplete
我正在使用我喜欢的 Sublime CodeIntel
作为 autocomplete
,但是当我尝试插入制表符时它会弹出并插入单词。我希望 tab 总是插入一个制表符,除非我的光标前的字符是一个字母。
我认为这可以通过用户 keymap
的 Tab 键来查看上下文来完成,但我不知道该怎么做。
如果您使用的是 windows,一个快速解决方法是使用 Autohotkey。
您可以将任意键分配给 4 个空格,如下所示
`::
Send {Space 4} ; when pressed ` enters four times Space bar
Return
像下面这样的东西应该可以工作。您可能需要使用键绑定的顺序。将以下内容添加到您的用户键绑定
{
"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)
以查看针对特定键绑定正在执行的命令。可能有助于确认命令是您预期的 运行。
试试这个...覆盖制表键以用作 缩进键 和 仅插入制表符字符
首选项 > 键绑定
[
{ "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 }
]
}
]
我正在使用我喜欢的 Sublime CodeIntel
作为 autocomplete
,但是当我尝试插入制表符时它会弹出并插入单词。我希望 tab 总是插入一个制表符,除非我的光标前的字符是一个字母。
我认为这可以通过用户 keymap
的 Tab 键来查看上下文来完成,但我不知道该怎么做。
如果您使用的是 windows,一个快速解决方法是使用 Autohotkey。 您可以将任意键分配给 4 个空格,如下所示
`::
Send {Space 4} ; when pressed ` enters four times Space bar
Return
像下面这样的东西应该可以工作。您可能需要使用键绑定的顺序。将以下内容添加到您的用户键绑定
{
"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)
以查看针对特定键绑定正在执行的命令。可能有助于确认命令是您预期的 运行。
试试这个...覆盖制表键以用作 缩进键 和 仅插入制表符字符
首选项 > 键绑定
[
{ "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 }
]
}
]