为 Windows Terminal 添加 Anaconda Prompt

Windows Terminal 在 PC 上是比较好看的终端,在安装 Powershell v7 或者 Windows Subsystem Linux 之后都会自动在 Windows Terminal 的配置文件中自动生成对应的设置,从而可以在 Windows Terminal 中使用。

但是,我在安装 Anaconda 之后发现 Windows Terminal 并没有为其自动生成设置,所以为了用上更好看的界面,需要对 Windows Terminal配置文件进行一定的修改。

首先,得知道 Anaconda 的终端要怎么运行起来:

我安装的 Anaconda 版本是 Anaconda3-2020.07 64 位的,自带两个终端:Anaconda Prompt (anaconda3)Anaconda Powershell Prompt (anaconda3),分别对应 CMDPowershell

值得注意的是它们并非独立的可执行文件 .exe,而是快捷方式,查看它们的属性就知道只是运行了一段命令来激活 conda 环境而已。
在快捷方式的目标一栏就可以看到它们运行的命令分别是:

%windir%\System32\cmd.exe "/K" C:\Users\qq875\anaconda3\Scripts\activate.bat C:\Users\qq875\anaconda3
%windir%\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy ByPass -NoExit -Command "& 'C:\Users\qq875\anaconda3\shell\condabin\conda-hook.ps1' ; conda activate 'C:\Users\qq875\anaconda3' "

知道了终端运行的命令之后,我们来看 Windows Terminal 的配置文件 settings.json

......
    "defaultProfile": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
......
    "profiles":
    {
        ......
        "list":
        [
            {
                // Make changes here to the powershell.exe profile.
                "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
                "name": "Windows PowerShell",
                "commandline": "powershell.exe",
                "hidden": false
            },
            {
                // Make changes here to the cmd.exe profile.
                "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
                "name": "命令提示符",
                "commandline": "cmd.exe",
                "hidden": false
            },
            ......

可以看到 profiles 中的 list 下面就是放各个终端设置的地方,我们需要为 Anaconda 的两个终端添加设置

我们依次将 namecommandline 设置好,后者需要注意语法,例如双引号 " 需要用 \ 防止误认,以及路径中的 \ 需要用 // 替代。

需要注意的是最前面还需要一个 guid,可以用来将其复制到上方的 defaultProfile 中,则对应的终端就是 Windows Terminal 默认开启的终端了。GUID 我们可以用 Powershell 来生成,命令是:

[guid]::NewGuid()

最后为了美观,我们可以添加一个 icon
我把最终的配置文件贴在下面:

......
    "defaultProfile": "{8399643c-5298-4c9a-af1d-4ce616834506}",
......
    "profiles":
    {
        "defaults":
        {
            // Put settings here that you want to apply to all profiles.
        },
        "list":
        [
            {
                // Make changes here to the powershell.exe profile.
                "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
                "name": "Windows PowerShell",
                "commandline": "powershell.exe",
                "hidden": false
            },
            {
                // Make changes here to the cmd.exe profile.
                "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
                "name": "命令提示符",
                "commandline": "cmd.exe",
                "hidden": false
            },
            {
                // Make changes here to the powershell.exe profile.
                "guid": "{4e40e6a9-1f76-4fee-a760-9cbdad60d6d7}",
                "name": "Anaconda Powershell Prompt (anaconda3)",
                "commandline": "powershell.exe -ExecutionPolicy ByPass -NoExit -Command \"& \"C://Users//qq875//anaconda3//shell//condabin//conda-hook.ps1\" ; conda activate \"C://Users//qq875//anaconda3\" \"",
                "icon": "C://Users//qq875//anaconda3//Menu//Iconleak-Atrous-PSConsole.ico",
                "hidden": false
            },
            {
                // Make changes here to the cmd.exe profile.
                "guid": "{8399643c-5298-4c9a-af1d-4ce616834506}",
                "name": "Anaconda Prompt (anaconda3)",
                "commandline": "cmd.exe \"/K\" C://Users//qq875//anaconda3//Scripts//activate.bat C://Users//qq875//anaconda3",
                "icon" : "C://Users//qq875//anaconda3//Menu//Iconleak-Atrous-PSConsole.ico",
                "hidden": false
            },
        ]
    },
......
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。