Visual Studio Code支持Debugging和Task配置文件中的变量替换,以及一些选择设置。这些变量如 ${workspaceFolder} , ${workspaceFolderbasename}, ${fileWorkspaceFolder}。而且这些变量应用的非常普遍,然而我们一直无法准确知道这些变量在运行中到底表达什么含义,如果能在调试的时候将他们输出打印出来,就会能够更好的配置我们的项目。
变量解释如下图vs code打开路径/home/chenrui/documents/redis 的redis项目。以打开这个项目为例子,对下面的变量进行解释。
如下是可能出现在 tasks.json, launch.json 中的所有变量
${workspaceFolder} -图中的redis项目在vs code中打开的文件夹路径 /home/chenrui/documents/redis
${workspaceFolderbasename} -图中的redis项目在vs code中打开的没有任何斜杠(/)的文件夹的名称 redis
${file} -当前打开的文件,如果我当前打开的是tasks.json,那么此时中的 ${file} 就是表示的当前的tasks.json的绝对路径 /home/chenrui/documents/redis/.vscode/tasks.json
${relativeFile} - 当前打开文件的相对路径,如果我当前打开的是tasks.json,那么其相对路径.vscode/tasks.json
${relativeFileDirname} -当前打开文件相对于workspaceFolder的文件名 .vscode
${fileWorkspaceFolder} -当前打开文件的工作空间文件夹 /home/chenrui/documents/redis
${filebasename} -当前打开文件的文件名,如果我当前打开的是tasks.json, tasks.json
${filebasenameNoExtension} -当前打开的文件的没有扩展名的文件名,如果我当前打开的是tasks.json, tasks
${fileDirname} -当前打开文件的dirname,如果我当前打开的是task.json, 那么他的文件名/home/chenrui/documents/redis/.vscode
${fileExtname} -当前打开文件的扩展名,如果我当前打开的是task.json, 那么他的扩展名json
${cwd} -任务运行器启动时的当前工作目录
${lineNumber} -活动文件中当前选定的行号
${selectedText} -活动文件中当前选定的文本
${execPath} -运行VS Code可执行文件的路径
${defaultBuildTask} -默认构建任务的名称
${pathSeparator} -操作系统用来分隔文件路径中的组件的字符,/ on macOS or linux, on Windows
我如何知道一个变量的实际值,准确知道这些变量在运行中到底表达什么含义一个检查变量运行时值的简单方法是创建一个VS Code任务,将变量值输出到控制台。 例如,要查看${workspaceFolder}的解析值,你可以在tasks.json中创建并运行(Terminal > run Task)以下简单的echo任务:
{
"tasks": [
{
"label": "shell",
"type": "shell",
"command":"echo '' ${workspaceFolder}"
}
],
"version": "2.0.0"
}
更多的变量解释请看官网 https://code.visualstudio.com/docs/editor/variables-reference



