除$ {workspaceRoot}之外的VSCode环境变量

ZEE*_*ZEE 15 visual-studio-code

我知道有${workspaceRoot}可用的环境变量.还有哪些其他环境变量可供使用?

特别感兴趣的是没有替换${workspaceRoot}所有\字符的部分的文件名,/ 因此我们可以将其用作网址构建器.然后你可以使用像" http://localhost:9876/${relativeFile}" 这样的URL .

如果有像a ${relativeFile}和a 这样的东西,那将会非常有用${relativeFolder}.

Lum*_*ous 18

请注意,该${workspaceRoot}变量已被弃用,以支持该${workspaceFolder}变量.它已被弃用(并且不再记录),以便更好地与多根工作空间支持对齐.

您可以在以下链接中找到该列表:https://code.visualstudio.com/docs/editor/variables-reference

出于后人的原因,我将列出变量(我一直试图找到它们),从链接中复制(并美化它),以防它再次发生变化:

Visual Studio Code支持调试和任务配置文件中的变量替换.使用${variableName}语法在launch.json和tasks.json文件中的字符串内支持变量替换.

预定义的变量

支持以下预定义变量:

  • ${workspaceFolder} - 在VS Code中打开的文件夹的路径
  • ${workspaceFolderBasename} - VS代码中打开的文件夹的名称 - 没有 - 任何斜杠(/)
  • ${file} - 当前打开的文件
  • ${relativeFile} - 当前打开的文件相对于workspaceFolder
  • ${fileBasename} - 当前打开的文件的基本名称
  • ${fileBasenameNoExtension} - 当前打开的文件的basename,没有文件扩展名
  • ${fileDirname} - 当前打开的文件的dirname
  • ${fileExtname} - 当前打开文件的扩展名
  • ${cwd} - 启动时任务运行器的当前工作目录
  • ${lineNumber} - 活动文件中当前选定的行号
  • ${selectedText} - 活动文件中当前选定的文本

注意:${workspaceRoot}不推荐使用该变量以支持该${workspaceFolder}变量.

环境变量

您还可以通过${env:Name}语法引用环境变量(例如,${env:PATH})

    {
      "type": "node",
      "request": "launch",
      "name": "Launch Program",
      "program": "${workspaceFolder}/app.js",
      "cwd": "${workspaceFolder}",
      "args": [ "${env:USERNAME}" ]
    }
Run Code Online (Sandbox Code Playgroud)

注意:确保匹配环境变量名称的外壳,例如${env:Path}在Windows上.

设置和命令变量

您可以使用以下语法引用VS Code设置和命令:

  • ${config:Name} - 示例:$ {config:editor.fontSize}
  • ${command:CommandID} - 示例:$ {command:explorer.newFolder}

每个工作区文件夹的变量范围

通过将根文件夹的名称附加到变量(用冒号分隔),可以访问工作区的兄弟根文件夹.如果没有根文件夹名称,则该变量的范围限定为使用它的同一文件夹.

例如,在具有文件夹Server和Client的多根工作空间中,a ${workspaceFolder:Client}指的是Client root的路径.

  • @Mark使用** only **链接作为答案质量很差(就像其他两个答案一样)。实际上,显示信息使人们能够去一个地方找到他们想要的东西,而无需重定向到其他站点。并不是说您的答案是不好的,实际上是我刚才所说的一个好的答案。 (3认同)

sea*_*rth 6

您可以在此处找到可用替换变量的列表:

https://code.visualstudio.com/docs/editor/tasks#_variable-substitution

编辑:实际上可以在systemVariables.ts源文件中找到完整列表.基类定义了一个resolve()方法,该方法使用正则表达式将匹配项与具有相同名称的字符串属性值替换.请注意,SystemVariables还包括process.env模式所在的所有值${env.KEY}.