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

时间:2016-08-01 16:00:24

标签: visual-studio-code

我知道有${workspaceRoot}个环境变量可用。还有哪些其他环境变量?

特别感兴趣的是没有${workspaceRoot}部分的文件名,所有\个字符都替换为/ 所以我们可以将它用作网址构建器。然后,您可以使用" http://localhost:9876/${relativeFile}"。

等网址

如果有${relativeFile}${relativeFolder}之类的内容,那将非常有用。

2 个答案:

答案 0 :(得分:14)

请注意,${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} - 当前打开的文件的基本名称,没有文件扩展名
  • ${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}" ]
    }

注意:确保匹配环境变量名称的大小写,例如Windows上的${env:Path}

设置和命令变量

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

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

每个工作区文件夹的变量

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

例如,在包含文件夹Server和Client的多根工作空间中,${workspaceFolder:Client}指的是客户端根目录的路径。

答案 1 :(得分:6)

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

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

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