将所选行填充到 VSCode 中的光标位置

Pad selected lines to cursor position in VSCode

在Visual Studio 2019年,我可以使用Alt+Shift+(方向键) 多行编辑 "virtual" 白色 space 然后按任意键使所有用 space 填充的行到所选列,我经常使用它来进行初始化代码更易于阅读。但是,当我切换到 Visual Studio 代码时,我找不到等效项。我能找到的最接近的东西是 Ctrl+Alt+(方向键)。这不是我所需要的,因为它只将每一行光标放在末尾,而不是前面示例中的 "virtual" 白色 space。

这是 Visual Studio 2019 年的一个视觉示例(我不知道如何制作 GIF):

VSCode 中是否有任何等价物,或者我暂时没有它?

问得好,我在 VScode 中找不到实现相同效果的方法,但这里有一些技巧可以达到相同的效果:

  • Ctrl+Alt+(箭头键)所有行
  • 结束按钮
  • Tab 结束,所以最左边的光标就是您想要的位置
  • 逃脱
  • 再次按 Ctrl+Alt+(箭头键)所有行

显然它不是一个很好的工作流程..但它确实有效。您还可以查看 VScode 扩展,以加快速度或制作您自己的

您可以使用宏很好地完成这项工作。使用像 multi-command 这样的宏扩展,将其放入您的 settings.json:

"multiCommand.commands": [

  {
    "command": "multiCommand.padTrailingSpaces",
    "sequence": [
      "editor.action.insertCursorAtEndOfEachLineSelected",
       "cursorHomeSelect",
      {
        "command": "editor.action.insertSnippet,

                       // pad end of each line with lots of spaces's'
        "args": {
          "snippet": "$TM_SELECTED_TEXT                                              ",
        }
      },

      "cursorHomeSelect",
      {
        "command": "editor.action.insertSnippet",  
        "args": {

          // keep first 30 characters, increase if you typically need more
          "snippet": "${TM_SELECTED_TEXT/(.{30}).*//g}",  
        }
      }
    ]
  }
]

上面的代码在每行的末尾放置了一个光标,添加了比您应该需要的更多的空格,然后只保留每行的前 30 个字符。

选择一些键绑定(在 keybindings.json 中):

{
  "key": "alt+s",
  "command": "extension.multiCommand.execute",
  "args": { "command": "multiCommand.padTrailingSpaces" },
  "when": "editorTextFocus" 
},


首先 select 所有你想要填充的行,然后触发你的键绑定。然后至少你让所有的光标都与填充对齐,并且很容易同时向左或向右移动所有光标。

您可能可以将我仅用于演示目的的 30 减少一些 - 取决于您最长的线路通常有多长。