【问题标题】:Sublime Text 3 Deleting Code when I hit Tab Key当我点击 Tab 键时 Sublime Text 3 删除代码
【发布时间】:2014-04-18 11:33:29
【问题描述】:

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

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

【问题讨论】:

  • 您是否在过去和现在之间更改了任何设置?可能的原因可能包括更改您的首选项、更改键绑定或创建分配给Tab 的新宏。

标签: ide indentation sublimetext sublimetext3


【解决方案1】:

这是一个简单的 Alt+tab (Cmd+tab) 问题

我发现当我错过“购买此软件”对话框并且没有关闭它时会发生这种情况。

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

正如其他人所说,重新启动 Sublime 也将解决此问题,因为它本质上是在关闭对话。

【讨论】:

  • 哈,这对我有用。也许这是他们给我们一种微妙的购买动机的方式:)
  • 这是真正的问题,应该是公认的答案。
  • @Goahnary 不一定。在我的情况下,没有打开对话框,解决方法是重新启动 Sublime Text。
  • 当您有另一个打开的对话框时也会发生这种情况,例如 Sublime Text 的另一个窗口上的“打开文件”对话框
  • 哇....谢谢伙计。这个错误困扰了我多年,直到现在我才用谷歌搜索过。
【解决方案2】:

对于其他从谷歌来到这里的人,请先阅读以下内容:

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

【讨论】:

  • 这里与 Sublime Text 3 相同。
  • 这里一样...刚刚重新启动。
  • 重启时会自行修复,但过一会问题又出现了。发生这种情况时,它还会添加无法显示的不可见字符,这通常会搞砸我的 asp 页面,因为它们在运行时会抛出无效字符错误。
【解决方案3】:

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

修复:

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

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

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

shift+tab 的取消缩进也是如此:

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

【讨论】:

  • 太棒了!我也在寻找这个,即使对我来说块上的 tab 键什么也没做。
  • 您能否展示如何使用 Shift-Tab 来取消缩进一行?
  • 谢谢,对初学者很有帮助:)
  • 我知道选择的答案是解决 OP 问题的原因,但如果这个问题有第二个答案,那就是它!
【解决方案4】:

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

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

【讨论】:

  • 您的帖子并未提及解决问题。
  • 那是我的问题,谢谢你的想法。花了 10 分钟弄清楚我的键盘出了什么问题:D
  • 我遇到了这个问题,正如@shoo 所说...购买对话框在应用程序后面打开。关闭升级对话框后,tab 键再次起作用。很奇怪。
  • "...当 sublime 的升级消息出现并且不在焦点上时也会发生这种情况。" - 是的!这让我发疯了。为什么在 17 年这仍然是问题...
【解决方案5】:

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

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

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

【讨论】:

    【解决方案6】:

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

    找到相关包后,我就

    • 删除了导致问题的 Emmet Style Reflocor 包(不是 Sublime Text 本身)
    • 重新启动 Sublime Text

    现在效果很好。

    【讨论】:

    • 对我来说这只是“Emmet”,而不是 Style Reflector :) 但谢谢让我继续前进
    【解决方案7】:

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

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

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

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

    【讨论】:

      【解决方案8】:

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

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

      【讨论】:

        猜你喜欢
        • 2017-09-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-01
        • 2015-02-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多