Visual Studio Code 终端配置文件使用说明
本节所讲述的“终端配置文件”并非包含所有 Visual Studio Code 终端设置的文件。
Visual Studio Code 终端配置文件
Visual Studio Code 终端配置文件并非通过单独的文件存储,而是存在于 Visual Studio Code 设置文件settings.json
的设置项terminal.integrated.profiles.<platform>
中,其中platform
为操作系统,可以是linux
,windows
或osx
,这使得开发人员能够针对不同的操作系统 Linux/Windows/macOS 来定制不同的 Visual Studio Code 终端。
Visual Studio Code 设置项terminal.integrated.profiles.<platform>
是一个对象,包含了用于对应操作系统的 Visual Studio Code 终端配置文件,对象的属性的名称为终端配置文件的名称,对象的属性的值(也是一个对象)为终端配置文件的内容。
{
// Windows 系统中的终端配置文件
"terminal.integrated.profiles.windows": {
// 终端配置文件 A Shell
"A Shell": {
"path": "<外壳程序的路径信息>",
},
},
}
Visual Studio Code 内置终端配置文件
默认情况下,Visual Studio Code 工作区或用户设置文件settings.json
可能并不包含设置项terminal.integrated.profiles.<platform>
,但这并不影响 Visual Studio Code 终端的正常使用,因为 Visual Studio Code 可以自动识别当前系统中可用的命令行应用(外壳程序,shell),并拥有一些内置的终端配置文件。
新建 Visual Studio Code 终端配置文件
在启动某个新的命令行应用(外壳程序)时,如果 Visual Studio Code 未列出你所期望的命令行应用,那么可以在 Visual Studio Code 设置文件settings.json
的设置项terminal.integrated.profiles.<platform>
中添加新的属性(设置项)来表示新的终端配置文件,并将终端配置文件指向目标命令行应用。
Visual Studio Code 终端配置文件在设置文件settings.json
中的表现形式同样是对象,该对象拥有以下两个重要的属性(设置项)。
- path 属性
path
可以是 Visual Studio Code 终端配置文件对应的命令行应用的路径或别名,你需要确保 Visual Studio Code 或操作系统能够根据path
的值以及某些环境变量(比如PATH
)找到目标命令行应用,否则,Visual Studio Code 可能不会在用户界面中列出该终端配置文件。属性
path
也可以是一个包含多个指向命令行应用的路径或别名的数组,这些路径或别名将按照先后顺序用于查找目标命令行应用。- source 属性
如果未指定
path
,那么可以设置source
属性,该属性仅在设置项terminal.integrated.profiles.windows
中有效,并且仅有两个有效值PowerShell
和Git Bash
,他们表示使用 Visual Studio Code 内置终端配置文件PowerShell
或Git Bash
。虽然是使用 Visual Studio Code 内置终端配置文件,但你可以覆盖某些属性,比如,添加有效的
path
属性来指定目标命令行应用。
下面的终端配置文件New PS
,将采用 Visual Studio Code 内置终端配置文件PowerShell
,并改写其path
属性为cmd
。
{
// Windows 系统中的终端配置文件
"terminal.integrated.profiles.windows": {
// 终端配置文件 New PS
"New PS": {
// 采用内置的终端配置文件 PowerShell
"source": "PowerShell",
// 覆盖 path 属性,改为启动 Windows 命令提示符
"path": "cmd",
},
},
}
为 Visual Studio Code 终端添加启动参数
如何使用 Visual Studio Code 终端配置文件为终端启动的命令行应用/程序添加启动参数视频演示 Bilibili
通过 Visual Studio Code 终端配置文件的属性(设置项)args
,你可以为 Visual Studio Code 终端所启动的命令行应用(外壳程序)添加启动参数,该属性是一个数组,每一个启动参数(名称)或参数值均对应了数组中的一个元素。
不支持将 Visual Studio Code 终端的启动参数的名称和值放入同一个字符串中
对于 Visual Studio Code 终端配置文件的args
属性,不要将启动参数的名称和启动参数的值放在同一个字符串中,比如["-OutputFormat XML"]
,这可能导致 Visual Studio Code 终端无法正常启动命令行应用,正确的做法是将参数名称和参数值分开,比如["-OutputFormat","XML"]
。
虽然 Visual Studio Code 终端配置文件的args
属性预期为数组,但将其设置为单一字符串也是可行的(在一定条件下),比如,"-OutputFormat XML"
的效果可能与["-OutputFormat","XML"]
相同。
下面的 Visual Studio Code 终端配置文件PS-parameters
,为命令行应用 PowerShell 添加了启动参数-OutputFormat
,其值为XML
。
{
// Windows 系统中的终端配置文件
"terminal.integrated.profiles.windows": {
// 终端配置文件 PS-parameters
"PS-parameters": {
// 采用内置的终端配置文件 PowerShell
"source": "PowerShell",
// 为 PowerShell 添加启动参数
"args": [
// 启动参数 -OutputFormat,其值为 XML
"-OutputFormat", "XML",
],
},
},
}
管理 Visual Studio Code 终端中的环境变量
Visual Studio Code 终端配置文件的属性(设置项)env
是一个对象,可用于管理 Visual Studio Code 终端所启动的命令行应用(外壳程序)中的环境变量,该对象的属性的名称是环境变量的名称,属性的值是环境变量的值。env
属性中包含的环境变量将被添加至命令行应用,或覆盖命令行应用中的同名环境变量。如果你希望删除命令行应用中原有的某个环境变量,则应在env
中将其对应的属性的值设置为null
。
可能需要重启 Visual Studio Code 使修改后的终端配置文件的 env 属性生效
如果你修改了 Visual Studio Code 终端配置文件的env
属性,比如,为命令行应用添加了新的环境变量或覆盖了原有的环境变量,那么这些修改对于已经打开命令行应用是无效的,并且可能需要重启 Visual Studio Code 才能使这些修改生效。
命令行应用可能不会完全支持 Visual Studio Code 终端配置文件的 env 属性
需要指出的是,一些命令行应用可能无法完全支持通过 Visual Studio Code 终端配置文件的env
属性来管理环境变量,比如,一些命令行可能不支持通过env
来添加环境变量。
下面的 Visual Studio Code 终端配置文件CMD-variables
,更改了环境变量OS
并添加了环境变量OS_OTHER
(可能需要重启 Visual Studio Code),启动该终端配置文件对应的命令提示符后,我们通过echo
命令查看环境变量OS
以及OS_OTHER
。
{
// Windows 系统中的终端配置文件
"terminal.integrated.profiles.windows": {
// 终端配置文件 CMD-variables(可能需要重启 Visual Studio Code)
"CMD-variables": {
// 启动 Windows 命令提示符
"path": "cmd",
"env": {
// 更改已有的环境变量 OS
"OS": "Hello world!",
// 添加新的环境变量 OS_OTHER
"OS_OTHER": "Hello other worlds!",
}
},
},
}
# 命令提示符
echo %OS%
Hello world!
echo %OS_OTHER%
Hello other worlds!
如何管理 Visual Studio Code 所有命令行应用中的环境变量?
通过 Visual Studio Code 设置项terminal.integrated.env.<platform>
(platform
是linux
,windows
或osx
之一),你可以为指定操作系统中的所有命令行应用添加,删除或更改环境变量。其具体使用方法与 Visual Studio Code 终端配置文件的env
属性类似,只不过,当terminal.integrated.env.<platform>
与env
属性包含相同的环境变量时,以env
属性为准。
虽然我们在 Visual Studio Code 设置项terminal.integrated.env.windows
中删除了环境变量OS
,但终端配置文件CMD-override
重新添加了他,启动该终端配置文件对应的命令提示符后,可通过echo
命令查看环境变量OS
以及OS_OTHER
。
{
// 管理 Windows 中的命令行的环境变量
"terminal.integrated.env.windows": {
// 删除已有的环境变量 OS
"OS": null,
// 添加新的环境变量 OS_OTHER
"OS_OTHER": "Other worlds!",
},
// Windows 系统中的终端配置文件
"terminal.integrated.profiles.windows": {
// 终端配置文件 CMD-override(可能需要重启 Visual Studio Code)
"CMD-override": {
// 启动 Windows 命令提示符
"path": "cmd",
"env": {
// 重新添加已被删除的环境变量 OS
"OS": "Hello world!",
}
},
},
}
# 命令提示符
echo %OS%
Hello world!
echo %OS_OTHER%
Other worlds!
设置 Visual Studio Code 终端的名称,图标,颜色
通过 Visual Studio Code 终端配置文件的属性(设置项)icon
和color
,可以设置 Visual Studio Code 终端所启动的命令行应用(外壳程序)的图标和图标的颜色。通过属性overrideName
可以设置是否将 Visual Studio Code 终端所启动的命令行应用的标题更改为终端配置文件的名称,如果设置为true
(默认为false
),则标题为终端配置文件的名称。
{
// Windows 系统中的终端配置文件
"terminal.integrated.profiles.windows": {
// 终端配置文件 PS-customized
"PS-customized": {
// 采用内置的终端配置文件 PowerShell
"source": "PowerShell",
// 将命令行应用的标题替换为终端配置文件的名称 PS-customized
"overrideName": true,
// 设置终端的图标
"icon": "calendar",
// 设置终端的图标的颜色
"color": "terminal.ansiGreen",
},
},
}
终端,外观和样式
你可以仅改变 Visual Studio Code 终端所启动的某个具体命令行应用的名称,图标和颜色,具体请查看更改 Visual Studio Code 终端的名称,图标,颜色一段,或通过 Visual Studio Code 设置项指定命令行应用的默认名称,说明,图标和图标颜色,具体请查看自定义 Visual Studio Code 终端选项卡的默认名称,说明,图标,颜色一段。
设置默认的 Visual Studio Code 终端配置文件
如何设置默认的 Visual Studio Code 终端,终端配置文件,命令行应用视频演示 Bilibili
通过 Visual Studio Code 设置项terminal.integrated.defaultProfile.<platform>
(platform
是linux
,windows
或osx
之一),你可以为某个操作系统中的 Visual Studio Code 指定默认的终端配置文件,通常这意味着指定 Visual Studio Code 终端默认启动的命令行应用(或不同的启动参数),该设置项的值可以是任意有效的 Visual Studio Code 终端配置文件的名称。
如果忽略 Visual Studio Code 设置项terminal.integrated.defaultProfile.<platform>
,或将其设置为null
,那么 Visual Studio Code 将尝试在 Windows 系统中使用命令行应用 PowerShell,在 Linux/macOS 系统中使用由环境变量SHELL
(区分大小写)指定的命令行应用(外壳程序,shell)。
{
// 选择 PS-customized 作为默认的终端配置文件
"terminal.integrated.defaultProfile.windows": "PS-customized",
}
此外,在 Visual Studio Code 的命令面板中输入并执行命令Terminal: Select Default Profile
,或点击 Visual Studio Code 终端面板右上角的加号按钮旁边的箭头按钮,然后选择菜单项选择默认配置文件,同样可以设置默认的 Visual Studio Code 终端配置文件,这将修改 Visual Studio Code 用户设置文件。
由于工作区设置文件会覆盖用户设置文件中的设置项,因此,如果你在工作区设置文件中指定了 Visual Studio Code 默认终端配置文件,那么以上操作可能不会达到预期效果。
设置用于自动化功能的 Visual Studio Code 终端配置文件
一般情况下,Visual Studio Code 的自动化功能(比如任务和调试功能)会使用默认的终端配置文件,并启动对应的命令行应用(外壳程序),你可以通过 Visual Studio Code 设置项terminal.integrated.automationProfile.<platform>
(platform
是windows
,linux
或osx
之一)为自动化功能指定其所使用的终端配置文件。
Visual Studio Code 设置项terminal.integrated.automationProfile.<platform>
不是表示终端配置文件的名称的字符串,而是表示终端配置文件的内容的对象,该对象可包含属性path
,args
,env
,overrideName
,icon
,color
,但不包含属性source
,需要说明的是,某些属性可能不会产生预期效果,比如icon
和color
,他们可能无法改变命令行应用的图标和图标颜色。
{
// 为自动化功能设置终端配置文件
"terminal.integrated.automationProfile.windows": {
// 启动 Windows 命令提示符
"path": "cmd",
// 设置终端的图标的颜色(可能没有效果)
"color": "terminal.ansiRed",
},
}
移除 Visual Studio Code 终端配置文件
如何移除不需要的 Visual Studio Code 终端,终端配置文件,命令行应用视频演示 Bilibili
如果你希望移除某个 Visual Studio Code 终端配置文件,那么可以将其在设置项terminal.integrated.profiles.<platform>
中对应的属性的值设置为null
。
在下面的示例中,我们移除了终端配置文件Command Prompt
。
{
// Windows 系统中的终端配置文件
"terminal.integrated.profiles.windows": {
// 移除终端配置文件 Command Prompt
"Command Prompt": null,
},
}
源码
讲解视频
如何将其他命令行应用/程序作为 Visual Studio Code 终端?如何添加新的 Visual Studio Code 终端配置文件·Bilibili
如何使用 Visual Studio Code 终端配置文件为终端启动的命令行应用/程序添加启动参数·Bilibili
如何使用 Visual Studio Code 设置文件和终端配置文件管理(添加,修改,删除)命令行应用中的环境变量·Bilibili
如何设置默认的 Visual Studio Code 终端,终端配置文件,命令行应用·Bilibili
如何移除不需要的 Visual Studio Code 终端,终端配置文件,命令行应用·Bilibili