在 VS Code 中注释一行时移至下一行

问题描述 投票:0回答:4

我刚刚从 PhpStorm 迁移到 VS Code,但仍然有一些不习惯的地方。

当我使用 Ctrl + / 注释一行时,光标停留在该行中。我希望我的光标移动到下一行(就像在 PhpStorm 中实际所做的那样)。

关于如何在评论一行后添加此“转到下一行”操作有什么想法吗?

visual-studio-code
4个回答
45
投票

有关 runCommands 的更多信息,请参阅

https://stackoverflow.com/a/75808372/836330
。不再需要扩展,因为 vscode v1.77+ 中已内置类似宏的功能,因此这些键绑定现在可以使用(在您的
keybindings.json
中):

在 Windows 上,文件位于此处

%APPDATA%\Code\User\keybindings.json

Mac

~/Library/Application Support/Code/User/keybindings.json

Linux

~/.config/Code/User/keybindings.json
{
  "key": "ctrl+/",  // whatever keybindings you want
  "command": "runCommands",
  "args": {
    "commands": [
      "editor.action.commentLine",
      "cursorDown"
    ]
  },
  "when": "editorTextFocus"
},
{
  "key": "shift+alt+A",
  "command": "runCommands",
  "args": {
    "commands": [
      "editor.action.blockComment",
      "cursorDown"
    ]
  },
  "when": "editorTextFocus"
}

之前的回答:

使用此键绑定(在您的

keybindings.json
中)和宏扩展多命令

{
  "key": "ctrl+/",                     // whatever you want 
  "command": "extension.multiCommand.execute",
  "args": {
    "sequence": [
      "editor.action.commentLine",     // for line comments 
      "editor.action.insertLineAfter"
      // "cursorDown"
    ]
  },
  "when": "editorTextFocus"
},
{
  "key": "shift+alt+A",                   // whatever keybinding you want
  "command": "extension.multiCommand.execute",
  "args": {
    "sequence": [
      "editor.action.blockComment",       // for block comments too
      "editor.action.insertLineAfter"
      //  "cursorDown"
    ]
  },
  "when": "editorTextFocus"
}

唯一的缺点是,当您取消注释时,它还会插入一行。 如果您只想向下移动一行(其中可能存在预先存在的文本),请使用命令

"cursorDown"
,而不是插入一行。


27
投票

虽然@Mark 的解决方案很有帮助,但我发现它对于新手来说并不完整 - 我必须做额外的研究才能实现该功能。所以这里有详细的步骤。

  1. 前往
    View - Extensions

enter image description here

  1. 找到并安装
    Multi-command
    扩展。
  1. 转到

    File > Preferences > Keyboard Shortcuts
    。 (macOS 上
    Code > Preferences > Keyboard Shortcuts

  2. Open Keyboard Shortcuts (JSON)
    如下面的屏幕截图所示。

enter image description here

  1. keybindings.json
    将会打开。
  1. 在此处添加@Mark 已发布的代码。我的文件现在看起来像这样:

Windows/Linux:

[
    {
        "key": "ctrl+/",
        "command": "extension.multiCommand.execute",
        "args": {
          "sequence": [
            "editor.action.commentLine",
            "cursorDown"
          ]
        },
        "when": "editorTextFocus"
      }
]

Mac操作系统:

[
    {
        "key": "cmd+/",
        "command": "extension.multiCommand.execute",
        "args": {
          "sequence": [
            "editor.action.commentLine",
            "cursorDown"
          ]
        },
        "when": "editorTextFocus"
      }
]
  1. 利润!

enter image description here


4
投票

从今天开始,在 Visual Studio Code 1.77.3 中,您不再需要多命令扩展

此外,现有答案在换行上效果不佳,它们的行为是将光标滚动到下一个屏幕行,该行实际上位于同一“实际”行中。 (如果您还打算使用相同的键绑定注释下一行,那么这会特别成问题;结果是您正在un注释刚刚注释的行。)

我的建议无需多命令即可工作,并且还解决了这个烦恼。它覆盖 ctrl + 数字键盘斜线键绑定(根据需要更改它)。

在您的

keybindings.json
中,添加此块(适用于 Windows/Linux):

{
    "key": "ctrl+[NumpadDivide]",
    "command": "runCommands",
    "args": {
      "commands": [
        {
            "command": "editor.action.commentLine"
        },
        {
            "command": "cursorMove",
            "args": { "by": "line", "to": "down" }
        }
      ]
    },
    "when": "editorTextFocus"
}

对于 macOS,将“ctrl”替换为“cmd”。


2
投票

两种解决方案都对我有用..几乎哈哈 我使用的是 Mac,

"key": "cmd+/",
更适合我。 解决方案有
"key": "ctrl+/",
。 我猜那是 Windows 的事情。

© www.soinside.com 2019 - 2024. All rights reserved.