将所选行填充到 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
减少一些 - 取决于您最长的线路通常有多长。
在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
减少一些 - 取决于您最长的线路通常有多长。