2

在 Visual Studio 2019 中,我可以使用Alt++对“虚拟”Shift空白(Arrow Keys)进行多行编辑,然后按任意键使所有行用空格填充到所选列,我经常使用它来使初始化代码更易于阅读。但是,当我切换到 Visual Studio Code 时,我找不到等价物。我能找到的最接近的东西是Ctrl++ 。这不是我所需要的,因为它只将每行光标放在末尾,而不是前面示例中的“虚拟”空白。Alt(Arrow Keys)

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

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

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

4

2 回答 2

6

好问题,我找不到在 VScode 中做同样事情的方法,但这里有一个小技巧来获得相同的效果:

在此处输入图像描述

  • Ctrl+Alt+(箭头键)所有行
  • 结束按钮
  • 制表符,所以最左边的光标就是你想要的地方
  • 逃脱
  • Ctrl+Alt+(箭头键)再次所有的行

显然它不是一个好的工作流程......但它有效。您还可以查看 VScode 扩展,以使其更快或自己制作

于 2020-01-17T19:22:23.727 回答
0

你可以用宏很好地做到这一点。使用像多命令这样的宏扩展把它放到你的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}).*/$1/g}",  
        }
      }
    ]
  }
]

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

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

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

将空格填充到每一行的宏


首先选择您要填充的所有行,然后触发您的键绑定。然后至少你有所有的光标与填充对齐,并且很容易一次向左或向右移动所有光标。

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

于 2020-01-17T19:58:57.143 回答