如何配置Sublime Text 3仅在光标后有字符时按Tab触发自动补全?
如何配置Sublime Text 3让Tab仅在光标前有字符时触发自动补全?
当然可以搞定这个需求!我之前也被空行按Tab弹出补全框的问题烦过好久,下面是亲测有效的配置方法:
步骤1:打开自定义键绑定
点击顶部菜单栏的Preferences -> Key Bindings,此时会打开两个面板:左边是Sublime默认的键绑定,右边是用户自定义键绑定(我们只需要修改右边这个)。
步骤2:添加自定义Tab规则
在右侧的用户键绑定面板中,粘贴以下代码(如果面板里已有其他内容,记得把这段代码放在现有的JSON数组里):
{ "keys": ["tab"], "command": "insert", "args": {"characters": "\t"}, "context": [ { "key": "auto_complete_visible", "operator": "equal", "operand": false }, { "key": "preceding_text", "operator": "regex_match", "operand": "^\\s*$", "match_all": true } ] }, { "keys": ["tab"], "command": "auto_complete", "context": [ { "key": "auto_complete_visible", "operator": "equal", "operand": false }, { "key": "preceding_text", "operator": "regex_match", "operand": ".+", "match_all": true } ] }
代码逻辑解释
- 第一个规则:当没有补全框显示,且光标前的内容只有空白字符(或者完全是空行)时,按Tab直接插入制表符(具体是制表符还是空格,取决于你在
Preferences -> Settings里设置的translate_tabs_to_spaces选项)。 - 第二个规则:当没有补全框显示,且光标前有非空白字符时,按Tab才会触发自动补全。
额外小提示
如果有时候你在有字符的位置,不想触发补全而是想插入制表符,可以按住Shift+Tab——这是Sublime的默认快捷键,专门用来插入制表符,不会触发补全。
内容的提问来源于stack exchange,提问作者Emanuel A.
相关产品推荐
相关产品推荐

