Sublime Text 3 - 点击选项卡不添加 space,而是使文本小写
Sublime Text 3 - Hitting tab doesn't add space, instead makes text lower case
如果我输入以下内容:
TEST
然后按 TAB,代码现在看起来像这样:
test
我不知道发生了什么,但制表符不再缩进并将当前行的文本更改为小写。
知道如何恢复 TAB 功能吗?
在一般情况下,一个可能的原因是您安装了第三方软件包,该软件包窃取了 Tab 键绑定以执行其自己的操作,在此case 会将前面的单词转为小写。
如果此行为适用于您之后碰巧按 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 将尝试执行制表符补全,这不仅考虑片段和补全还有当前缓冲区中的单词。
在那种情况下,如果您要输入单词 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
,在这种情况下,正如注释中提到的那样,绑定将执行一个制表符,除非您选择了多行,在这种情况下它会取消缩进。
如果我输入以下内容:
TEST
然后按 TAB,代码现在看起来像这样:
test
我不知道发生了什么,但制表符不再缩进并将当前行的文本更改为小写。
知道如何恢复 TAB 功能吗?
在一般情况下,一个可能的原因是您安装了第三方软件包,该软件包窃取了 Tab 键绑定以执行其自己的操作,在此case 会将前面的单词转为小写。
如果此行为适用于您之后碰巧按 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 将尝试执行制表符补全,这不仅考虑片段和补全还有当前缓冲区中的单词。
在那种情况下,如果您要输入单词 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
,在这种情况下,正如注释中提到的那样,绑定将执行一个制表符,除非您选择了多行,在这种情况下它会取消缩进。