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

如何通过URL在VS Code中打开含指定内容的新文件?

通过URL在VS Code中打开带指定内容的新文件的方法

目前VS Code原生的vscode://协议并不支持直接通过data/blob URL创建带指定内容的新文件,但可以通过以下两种可行方案实现需求:

方案一:命令行协议封装(本地环境可用)

借助系统命令行协议,直接调用VS Code的命令行参数创建临时文件并打开:

  1. 核心命令逻辑
    通过命令行生成带指定内容的临时文件,再用VS Code打开:
# macOS/Linux
echo "Hello World!" > /tmp/temp-content.txt && code /tmp/temp-content.txt

# Windows
echo Hello World! > %temp%\temp-content.txt && code %temp%\temp-content.txt
  1. 可点击链接示例
    把命令封装成系统可识别的协议链接:
  • Windows:
<a href="cmd:///c echo Hello World! > %temp%\temp-content.txt && code %temp%\temp-content.txt">打开带内容的文件</a>
  • macOS:
<a href="open -a 'Visual Studio Code' --args $(echo "Hello World!" > /tmp/temp-content.txt && echo /tmp/temp-content.txt)">打开带内容的文件</a>

方案二:VS Code远程服务API(需启动服务)

先开启VS Code的远程服务,再通过API创建文件并打开:

  1. 启动VS Code服务:
code --start-server --port=8080
  1. 用JS封装创建并打开的逻辑(可绑定到页面点击事件):
async function createAndOpenFile() {
    const content = btoa("Hello World!"); // 对内容做base64编码
    // 创建临时文件
    await fetch('http://localhost:8080/api/v1/files', {
        method: 'POST',
        headers: {'Content-Type': 'application/json'},
        body: JSON.stringify({
            path: '/tmp/remote-temp.txt',
            content: content,
            encoding: 'base64'
        })
    });
    // 打开创建好的文件
    await fetch('http://localhost:8080/api/v1/windows/active/files', {
        method: 'POST',
        headers: {'Content-Type': 'application/json'},
        body: JSON.stringify({files: ['/tmp/remote-temp.txt']})
    });
}

关于data/blob URL方案的说明

VS Code的vscode://协议仅能识别本地或远程文件系统的真实路径,无法解析data或blob这类内存级URL,所以只会打开空白窗口,这是当前协议的固有限制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 20:17:16