【问题标题】:How do I disable inserting a new empty line when I press Enter when the cursor is in brackets?当光标在括号中时按 Enter 时,如何禁用插入新的空行?
【发布时间】:2021-04-06 01:03:25
【问题描述】:

重现步骤:

  • 简单代码:
    if () {}

  • 光标在{}之间

  • 我按回车

  • 结果:

if () {
  
}
  • 预期结果:
if () {
}

我不想插入一个空行。

可能是默认有效(加空行),Alt+Enter时不加空行。

我没有在 vscode 中找到设置。我在谷歌上没有找到任何东西。


我试过了:

{
  "key": "alt+enter",
  "command": "type",
  "args": { 
    "text": "\n" 
  },
  "when": "editorTextFocus"
}

因为Alt+Enter 默认什么都不做。 但是,与editor.autoIndent 选项一起使用的onEnterRules 函数会检测到\n 字符的添加,并且无论如何都会添加一个额外的空行。 :(

我想使用editor.autoIndent。但我想使用快捷键Alt+Enter关闭(不要打开)。


最糟糕的选择:寻找与editor.autoIndent 完全相同但能够创建快捷方式Alt+Enter 以按照我想要的方式工作的扩展。

【问题讨论】:

  • 每次我在 google 上查找时都会发现很多。那里的数据库很大。
  • 如果你想拆分{},你不想插入一些文本,并且在与} 相同的行上键入该文本是不好的做法,并且会导致问题稍后
  • @rioV8 当我有一些代码然后想将它插入到条件语句中时。然后我使用代码移动该行(使用 Alt + UpArrow 快捷方式),并且无论如何我都必须删除一个空行。当我再做一次时,它很烦人。带有 TM_SELECTED_TEXT 或 CLIPBOARD 的片段甚至需要更多步骤,所以这是不可能的。只是不添加空行就解决了我的问题。
  • @rioV8 诀窍是您必须使用正确的关键字来查找特定内容。我正在寻找“vscode enter insert new empty line”出现很多,但我不需要。 : /
  • @rioV8 我发现editor.autoIndent 选项添加了一个空行。但总的来说,我想使用缩进,只是不要在单独的键盘快捷键下添加我想要的空行。在那里它被称为onEnterRules

标签: visual-studio-code vscode-settings vscode-extensions


【解决方案1】:

您可以使用扩展名multi-command 并构造一个执行您想要的命令。

将此添加到您的 settings.json(全局或工作区)

  "multiCommand.commands": {
    "multiCommand.lineBreakNoEmptyline": {
      "sequence": [
        "lineBreakInsert",
        "deleteWordRight",
        "cursorRight",
        "cursorHome"
      ]
    }
  }

将此添加到您的keybindings.json

  {
    "key": "alt+enter",
    "command": "multiCommand.lineBreakNoEmptyline",
    "when": "editorTextFocus"
  }

或使用仅键绑定方法

  {
    "key": "alt+enter",
    "command": "extension.multiCommand.execute",
    "args": { 
      "sequence": [
        "lineBreakInsert",
        "deleteWordRight",
        "cursorRight",
        "cursorHome"
      ]
    },
    "when": "editorTextFocus"
  }

【讨论】:

  • 使用multi-command时有一个明显的跳转——添加再删除行。但它仍然是我的问题的一个很好的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-02-16
  • 1970-01-01
  • 2013-09-17
  • 1970-01-01
  • 1970-01-01
  • 2012-05-17
相关资源
最近更新 更多