【发布时间】:2018-04-04 21:17:52
【问题描述】:
如果我输入以下内容:
TEST
然后点击TAB,代码现在看起来像这样:
test
我不知道发生了什么,但制表符不再缩进并将当前行上的文本更改为小写。
知道如何恢复TAB功能吗?
【问题讨论】:
标签: tabs sublimetext3 indentation lowercase
如果我输入以下内容:
TEST
然后点击TAB,代码现在看起来像这样:
test
我不知道发生了什么,但制表符不再缩进并将当前行上的文本更改为小写。
知道如何恢复TAB功能吗?
【问题讨论】:
标签: tabs sublimetext3 indentation lowercase
在一般情况下,一个可能的原因是您安装了第三方软件包,该软件包窃取了 Tab 键绑定以执行它自己的操作,在这种情况下,这将打开前面的单词小写。
如果此行为适用于您碰巧按 Tab 之后的任何单词,就会出现这种情况。在这种情况下,解决方案是找到执行此操作的包并禁用或重新配置它。
在您的情况下,我认为更可能的原因是您当前正在编辑的文件中出现了 TEST 一词,并且您打开了以下设置:
// When enabled, pressing tab will insert the best matching completion.
// When disabled, tab will only trigger snippets or insert a tab.
// Shift+tab can be used to insert an explicit tab when tab_completion is
// enabled.
"tab_completion": true,
当设置设置为true(这是默认值)时,按 Tab 将尝试执行制表符补全,它不仅考虑 sn-ps 和补全,还考虑当前缓冲区也是如此。
在这种情况下,如果您输入单词 test 并在单词 TEST 也出现在缓冲区中的位置按 Tab,则它被视为潜在完成,将变为替换。
如果这是问题所在,您只需输入 t 并按 Tab 就会看到类似的行为,这将循环遍历缓冲区中的所有 T 单词作为可能的完成。
假设这是发生在您身上的事情,以下其中一项应该可以为您解决问题:
在您的偏好中将tab_completion 设置为false;这将在所有地方完全禁用该功能
仅在您遇到问题的特定文件类型的设置中将tab_completion 设置为false;这将在一般情况下启用该功能,但阻止它出现在您不希望它出现的文件中。
使用 Shift+Tab 代替;该键序列将执行 Tab 通常执行的操作并插入一个制表符,即使 Tab 会尝试完成。
要使 #3 正常工作,请确保您已按如下方式设置此设置:
// By default, shift+tab will only unindent if the selection spans
// multiple lines. When pressing shift+tab at other times, it'll insert a
// tab character - this allows tabs to be inserted when tab_completion is
// enabled. Set this to true to make shift+tab always unindent, instead of
// inserting tabs.
"shift_tab_unindent": false,
此值的默认值为false,在这种情况下,正如注释所提到的,除非您选择了多行,否则绑定将执行一个制表符,在这种情况下它会取消缩进。
【讨论】: