You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS Code中如何为多行选中内容批量执行代码片段命令?

问题

已定义名为Quick Log Write-Host的VS Code代码片段及Ctrl+Q快捷键绑定,可将单行选中的PowerShell变量转换为日志语句,但无法批量处理多行选中内容。需求是无需编写自定义VS Code扩展,通过现有扩展或原生设置实现多行批量转换。

现有代码片段配置:

"Quick Log Write-Host": {
    "prefix": ["quicklog"],
    "body": [
            "Write-Host -f Green \"`$TM_SELECTED_TEXT:\" $TM_SELECTED_TEXT"
    ],
    "description": "Quick Log"
},

现有快捷键绑定:

{
    "key": "ctrl+q",
    "command": "editor.action.insertSnippet",
    "args": { "name": "Quick Log Write-Host" },
    "when": "editorTextFocus && editorLangId == powershell"
},
解决方案

可以通过原生VS Code代码片段的正则替换功能实现,无需额外扩展。

修改原代码片段,利用多行正则匹配替换逻辑,让片段支持批量处理每行选中内容:

"Quick Log Write-Host": {
    "prefix": ["quicklog"],
    "body": [
        "${SELECTION/^(.*)$/Write-Host -f Green \"$1:\" $1/gm}"
    ],
    "description": "Quick Log (Multi-line Support)"
},

逻辑说明

  • ${SELECTION/.../.../gm}:针对选中的全部内容执行正则替换,gm表示**全局(Global)+多行(Multi-line)**模式
  • ^(.*)$:匹配选中内容中的每一行完整文本
  • Write-Host -f Green \"$1:\" $1:将匹配到的每行文本($1指代匹配内容)替换为对应的日志语句

修改后保持原快捷键绑定不变,选中多行PowerShell代码按下Ctrl+Q,即可自动为每行生成对应的日志输出语句。

内容的提问来源于stack exchange,提问作者fmotion1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 22:47:42