Bootstrap

VSCode中Anaconda的终端配置(Anaconda Powershell Prompt)

前言

哎呀,不是很喜欢把什么东西都塞到环境变量里去,感觉乱乱的。
但是,只要使用Anaconda自带的终端就都迎刃而解了,人家Anaconda都给了终端了为什么不用呢。
但是作为VSCode狂魔,什么东西都想放在VSCode里,如果要另外开个终端实在是太麻烦了!所以记录一下在VSCode里使用Anaconda终端,以Anaconda Powershell Prompt 为例。
网上给了一些办法不是很好用,终端的问题其实有更本质的解决方法,其实无论哪个终端配置,都是适用的。

VSCode 的终端结构

在VSCode的Settings.json中可以发现"terminal.integrated.profiles.windows"包含了在VSCode中全部可用的终端,所以我们自己整一个也没有问题!
以我的为例:

    "terminal.integrated.profiles.windows": {

        "PowerShell": {
            "source": "PowerShell",
            "icon": "terminal-powershell"
        },
        "Command Prompt": {
            "path": [
                "${env:windir}\\Sysnative\\cmd.exe",
                "${env:windir}\\System32\\cmd.exe"
            ],
            "args": [],
            "icon": "terminal-cmd"
        },
        "Git Bash": {
            "source": "Git Bash"
        },
    },

分析结构,根据经验可以猜测得出"path"是路径,"arg"是参数,终端调用应该是调用目标路径的可执行文件并加上后面的参数。

Anaconda终端

打开Anaconda终端的快捷方式的属性中可以看到目标栏后面的形式是调用了一个终端PowerShell并且加了一堆参数,这个调用的实现原理和VSCode的终端是一致的。
举个栗子,我的长这样:

%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy ByPass -NoExit -Command "& 'D:\Program Files\anaconda3\shell\condabin\conda-hook.ps1' ; conda activate 'D:\Program Files\anaconda3' "

-ExecutionPolicy ByPass:允许 PowerShell 执行未经签名的脚本。
-NoExit:确保 PowerShell 窗口在执行命令后不会自动关闭。
-Command:执行指定的命令。
& 'D:\\Program Files\\anaconda3\\shell\\condabin\\conda-hook.ps1'; conda activate 'D:\\Program Files\\anaconda3':首先加载 conda-hook.ps1 脚本,然后激活 Anaconda 环境。

但实际上什么意思并不重要,我们只需要知道后面的都是调用的参数即可。

VSCode的终端配置

我们只要参照上面的结构,有样学样,然后稍作修改即可

    "terminal.integrated.profiles.windows": {

        "PowerShell": {
            "source": "PowerShell",
            "icon": "terminal-powershell"
        },
        "Command Prompt": {
            "path": [
                "${env:windir}\\Sysnative\\cmd.exe",
                "${env:windir}\\System32\\cmd.exe"
            ],
            "args": [],
            "icon": "terminal-cmd"
        },
        "Git Bash": {
            "source": "Git Bash"
        },
        "Anaconda Powershell": {
            "path": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
            "args": [
                "-ExecutionPolicy", "ByPass",         
                "-NoExit",                            
                "-Command",                           
                "& 'D:\\Program Files\\anaconda3\\shell\\condabin\\conda-hook.ps1'; conda activate 'D:\\Program Files\\anaconda3'"
              ]
        },
    },

如果是其他的终端同理,这样我们甚至可以通过调控参数来创造个性化的终端,实在是太棒了。

可以通过下面的语句实现默认终端的指定。
例如:

"terminal.integrated.defaultProfile.windows":"Anaconda Powershell",

上手VSCode之后会发现真好用,大家都来用VSCode吧,别用什么IDE了。

;