Anaconda PowerShell配置问题
在上一篇文章中,介绍了PowerShell定制路径提示符的方法:【PowerShell】显示路径太长?一分钟内定制路径提示符
但是,这个方法在Anaconda自带的PowerShell中却无法解析控制颜色的字符串,结果路径提示符变成了这个鬼样子:
有个比较简单的解决办法,那就是把conda加入Windows环境变量,从而在WIndows的PowerShell中可以之间使用conda命令,也就可以使用上篇文章提供的美化方案了。
但安装Anaconda时,将conda添加进全局变量的选项官方并不推荐,因为假如现有使用到Python的程序是依赖非Anaconda提供的Python版本,就会造成冲突。(当然,假如你的电脑没安装其他的Python版本,这么做也可以)
接下来介绍一种选择更加方便、效果更加丰富的PowerShell美化方式。
PowerShell美化效果
假如处于git仓库,还会显示当前分支名。
Powershell美化步骤
这一次,我们使用终端个性化工具oh-my-posh
而不是手动编写脚本。
感兴趣的话,可以通过官网了解更多:oh-my-posh官网
安装Scoop
我使用的是Scoop来安装oh-my-posh工具。
Scoop是适用于Windows平台的一个软件包管理工具,你可以理解为Linux平台的apt、yum工具,Python的pip工具,或者JavaScript的npm、yarn等工具。
当然,如果你不想用这个工具,可以进入oh-my-posh官网查看其他安装方法。
1、安装前准备
安装Scoop前,确保你的电脑满足以下条件:
1. Windows 7 SP1+或Windows Server 2008+
2. PowerShell 5(及以上,包含PowerShell Core)和.NET Framework 4.5(及以上)
3. 良好的网络环境(能访问GitHub)
4. 安装路径不得包含中文
前两点应该大部分人都满足,后两点需要注意下。
PowerShell下运行这个命令可以查看其版本:
$PSVersionTable
2、下载安装
# 配置自定义安装路径
$env:SCOOP='D:\Scoop'
[Environment]::SetEnvironmentVariable('SCOOP', $env:SCOOP, 'User')
# 下载安装
Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')
打开安装路径,确认安装成功:
安装配置oh-my-posh
1、安装oh-my-posh
scoop install https://github.com/JanDeDobbeleer/oh-my-posh/releases/latest/download/oh-my-posh.json
2、下载字体(推荐Meslo)
方法一:
oh-my-posh font install # 选择需要字体下载,需要以管理员模式运行PowerShell
方法二:Nerd Font官网下载字体
下载完成后解压,全选右键点击安装即可自动安装。
3、配置字体
在PowerShell中按下Ctrl+Shift+,
,弹出setting.json
文件,修改default如下:
{
"profiles":
{
"defaults":
{
"font":
{
"face": "MesloLGM Nerd Font"
}
}
}
}
4、修改路径提示符
notepad $Profile
在配置文件中输入配置信息并保存,其中zash
是oh-my-posh支持的一个主题,可以根据自身喜好改为其他主题。
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH/zash.omp.json" | Invoke-Expression
在PowerShell中运行以下命令可预览所有支持主题效果:
Get-PoshThemes
生效新配置:
. $Profile
配置Anaconda PowerShell
默认的Anaconda PowerShell的窗口是小黑框风格的:
输入:
conda init
之后用非管理员模式运行Anaconda PowerShell时,就可以直接在Windows PowerShell多窗口打开了。
由于我的电脑中,同时有PowerShell 5和PowerShell 7,Anaconda PowerShell关联到的是PowerShell 5(也就是Windows PowerShell),原来我配置的PowerShell 7和PowerShell 5并不会冲突,可同时使用。
不过conda init
后,PowerShell里使用Python都是conda的版本了,想要使用原来安装的Python版本,需要在cmd中打开。
参考资料
1、Scoop——也许是Windows平台最好用的软件(包)管理器
2、oh-my-posh官网
3、Windows Terminal美化(oh-my-posh3)
4、oh-my-posh - 终端个性化工具 - 美化PowerShell / cmd - 好物分享,真香~