为 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%System32cmd.exe "/K" C:Usersqq875anaconda3Scriptsactivate.bat C:Usersqq875anaconda3
%windir%System32WindowsPowerShellv1.0powershell.exe -ExecutionPolicy ByPass -NoExit -Command "&  C:Usersqq875anaconda3shellcondabinconda-hook.ps1  ; conda activate  C:Usersqq875anaconda3  "

知道了终端运行的命令之后,我们来看 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
            },
        ]
    },
......

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
none
暂无评论...