如果我输入以下内容:
TEST
然后按 TAB,代码现在如下所示:
test
我不知道发生了什么,但制表符不再缩进并将当前行上的文本更改为小写。
知道如何恢复TAB功能吗?
最佳答案
在一般情况下,一个可能的原因是您安装了一个第三方软件包,该软件包窃取了 Tab 键绑定(bind)以执行其自己的操作,在这种情况下将转动前面的单词小写。
如果此行为适用于您碰巧在之后按 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 将尝试执行 Tab 补全,这不仅考虑片段和补全,还考虑当前缓冲区中的单词也是如此。
在这种情况下,如果您要输入单词 test
并在单词 TEST
也出现在文本中的位置按 Tab buffer,它被认为是一个潜在的完成,并将成为替代品。
如果这是问题所在,您只需输入 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
,在这种情况下,正如注释提到的那样,绑定(bind)将执行制表符,除非您选择了多行,在这种情况下它会取消缩进。
关于tabs - Sublime Text 3 - 点击选项卡不会添加空格,而是使文本小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49660606/