Sublime Text 3当我点击Tab键时删除代码

时间:2014-03-13 15:38:00

标签: ide indentation sublimetext sublimetext3

当我在Sublime Text 3中突出显示一段代码并按下Tab键时,它不会像过去那样缩进整个块。相反,它会删除突出显示的代码。

有人知道如何解决这个问题吗?

8 个答案:

答案 0 :(得分:158)

这是一个简单的alt-tab问题

我发现当我错过了“购买此软件”对话并且没有将其解雇时,就会发生这种情况。

Alt-tab(或Mac上的Cmd-tab)检查是否有对话框等待响应并将其关闭。这将解决问题。

答案 1 :(得分:34)

对于任何从谷歌来到这里的人,请先阅读此内容:

SublimeText 2(也适用于3)今天突然开始对我这样做而不改变任何设置。我所要做的就是重新启动程序并自行修复。

答案 2 :(得分:13)

这是Sublime Text的默认行为。如果选择多行,它将缩进,但如果选择单行(选择不包含\n),它将运行insert_best_completion命令并删除选择。

修复:

在您的用户.sublime-keymap中添加以下内容:

{ "keys": ["tab"], "command": "indent", "context":
    [
        { "key": "text", "operator": "regex_contains", "operand": "." }
    ]
},

这将使您的Tab键始终缩进。如果你在 Tab 键上设置它,它不确定它是否会与自动完成冲突。

shift + 标签进行联系同样如此:

{ "keys": ["shift+tab"], "command": "unindent", "context":
    [
        { "key": "text", "operator": "regex_contains", "operand": "." }
    ]
},

答案 3 :(得分:3)

与上面的Dom的答案类似,当sublime的升级消息出现并且不在焦点时也会发生这种情况。我还发现,如果你打开Sublime启用另一台显示器,那么升级消息也会在屏幕外显示。

唯一的修复方法似乎是重启sublime。这也使对话框重新居中。

答案 4 :(得分:1)

这也发生在我身上,这是因为我选择的文本似乎是一个块,但实际上是一行包装文本。默认情况下,ST3将使用tab字符替换单个选定的行。

对我来说,取消/缩进选择更方便,无论它们是否为多行,因此我将以下内容添加到用户特定的sublime-keymap文件中。

{ "keys": ["tab"], "command": "indent", "context":
  [
    { "key": "selection_empty", "operator": "equal", "operand": false, "match_all": true },
  ]
}

答案 5 :(得分:1)

当我单击“选项卡”并检查底部的状态栏时,我发现了问题,它应该告诉您它为什么发生。

找到相关软件包后,我就

  • 删除了导致问题的 Emmet Style Refloctor 软件包(不是Sublime Text本身)
  • 重新启动崇高文字

现在效果很好。

答案 6 :(得分:0)

同样的事发生在我身上。只需转到首选项 - >键绑定然后在用户(右)键绑定中添加:

[
     { "keys": ["tab"], "command": "indent" },      
     { "keys": ["shift+tab"], "command": "unindent" },
]

然后重新启动sublime,它应该可以正常工作!

注意:这确实会破坏选项卡的完成,但复制选项卡默认值将解决此问题。此外,如果您使用输入它也可以正常工作。祝你好运!

答案 7 :(得分:0)

您可以检查以下可能导致此问题的点

  • 您可能会在后台打开崇高许可证弹出窗口。只需关闭它即可。
  • 按下任意键盘键,然后可以通过从开始菜单打开“屏幕键盘”进行检查。 (如果按下任何键,它将显示突出显示的键。)