如何在Sublime Text 3中禁用自动完成或制表符完成?我希望按Tab总是插入制表符,除非“自动完成”下拉框显示其他选定内容。
发生了什么(JavaScript文件):
按下选项卡后:
我尝试将其添加到Preferences.sublime-settings文件:
"tab_completion": false
但是,行为没有改变。
我的首选项文件如下:
{
"color_scheme": "Packages/Color Scheme - Default/Monokai.tmTheme",
"font_size": 9,
"ignored_packages":
[
"Vintage"
],
"tab_completion": false
}
我的Preferences > Settings - Syntax Specific
文件为空:
// These settings override both User and Default settings for the JavaScript syntax
{
}
答案 0 :(得分:1)
您是正确的,“首选项”>“设置”,然后设置“ tab_completion”:false。然后,您必须关闭sublime应用程序,这可能是这里缺少的步骤。
答案 1 :(得分:1)
很有可能是您到达这里的方式。 SublimeText中有一个众所周知的现象,如果您在“ label”或“ form”之类的单词之后按Tab,它将假定您在尝试插入标签并为您完成。实际上,如果您处于类似HTML的上下文中,则永远不能在这样的单词后插入制表符。
我刚刚想出了禁用它的方法。因为没有, tab_completion:false 不会摆脱它。也不会打开资源文件,编辑python脚本以及您可以在网上找到的任何其他内容-直到您意识到,似乎整个事情几乎都被硬编码到Tab键的功能中,这是徒劳的战斗;因此,只需打开您的键绑定,并在默认的左侧上查找以下魔术序列:
{ "keys": ["tab"], "command": "insert_best_completion", "args": {"default": "\t", "exact": true} },
{ "keys": ["tab"], "command": "insert_best_completion", "args": {"default": "\t", "exact": false},
"context":
[
{ "key": "setting.tab_completion", "operator": "equal", "operand": true },
{ "key": "preceding_text", "operator": "not_regex_match", "operand": ".*\\b[0-9]+$", "match_all": true },
]
},
{ "keys": ["tab"], "command": "replace_completion_with_next_completion", "context":
[
{ "key": "last_command", "operator": "equal", "operand": "insert_best_completion" },
{ "key": "setting.tab_completion", "operator": "equal", "operand": true }
]
},
{ "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 }
]
},
{ "keys": ["tab"], "command": "commit_completion", "context":
[
{ "key": "auto_complete_visible" },
{ "key": "setting.auto_complete_commit_on_tab" }
]
},
现在您要做的就是将其复制到右侧(键盘映射-用户),然后删除前2个声明。那些说“ insert_best_completion”的人。这样,您的Tab键仍然可以执行通常应做的所有技巧,包括缩进/取消缩进以及所有其他功能,除之外,令人讨厌的自动完成功能一直困扰着您很长时间。
不客气。
不完全是。我很高兴。
不能告诉你我现在有多放心。