Windows 10 使用 PowerShell 7 + Windows Terminal 及乱码、不显示 python环境问题
目录
- 1. Windows Terminal
- 1.1 安装 Windows Terminal
- 1.2 安装字体
- 1.3 配置 Windows Terminal
- 2. Power Shell 7
- 2.1 安装 Power Shell
- 2.2 配置 Power Shell
- 3. 疑难杂症
- 3.1 安装字体后 Poweline 仍然乱码
- 3.2 Powerline 不显示 Python 虚拟环境
- 3.3 去掉主机名
- 3.4 遗留问题
- 参考文献
写这篇文章纯属偶然,习惯 Mac
上使用 iTerm2 + oh-my-zsh
,也希望 Windows
上有好用的 Terminal
,虽然知道有 Windows Terminal
,但懒的折腾也就没整。不过最近电脑频繁死机,不得以重装后,顺便把 Windows Terminal
搞了,不过遇到各种乱七八糟的问题,在这里跟大分享一下。
- 注意:本文各部分不完全是安装过程,建议大家把所有的软件安装完后,再对各部进行配置
1. Windows Terminal
1.1 安装 Windows Terminal
从Microsoft App Store 安装Windows Terminal
。
1.2 安装字体
在 NERD FONTS 中选择任意你喜欢的字体并进行安装,注意: 需要与后面相关的字体设置相匹配
安装方法:
- 下载相应的字体并解压缩
- 选中所有的字体
- 右击选择 “安装”
1.3 配置 Windows Terminal
- 打开
Windows Terminal
的配置文件
- 配置默认设置部分
“defaultProfile”: 将
Power Shell 7
设置为默认终端
“profiles” :设置外观、字体、主题等
“useAcrylic”:用于设置毛玻璃特效
“colorScheme”:设置主题
“face”:设置字体
"defaultProfile": "{574e775e-4f2a-5b96-ac1e-a2962a402336}","profiles": {"defaults": {"acrylicOpacity": 0.5,"closeOnExit": "graceful","colorScheme": "Homebrew","cursorColor": "#FFFFFF","cursorShape": "bar","font": {"face": "JetBrainsMono NF","size": 11},"hidden": false,"historySize": 9001,"padding": "5, 5, 20, 25","snapOnInput": true,"startingDirectory": ".","useAcrylic": false},
- 设置
Windows Terminal
主题
本文主题为经他人修改的 Homebrew 主题
将该配置文件放置于"schemes":
项目下
{"background": "#283033","black": "#000000","blue": "#6666E9","brightBlack": "#666666","brightBlue": "#0000FF","brightCyan": "#00E5E5","brightGreen": "#00D900","brightPurple": "#E500E5","brightRed": "#E50000","brightWhite": "#E5E5E5","brightYellow": "#E5E500","cursorColor": "#FFFFFF","cyan": "#00A6B2","foreground": "#00FF00","green": "#00A600","name": "Homebrew","purple": "#B200B2","red": "#FC5275","selectionBackground": "#FFFFFF","white": "#BFBFBF","yellow": "#999900"},
2. Power Shell 7
2.1 安装 Power Shell
在 Power Shell 的 GitHub
项目中选择适合自己的 Power Shell
进行安装。
2.2 配置 Power Shell
- 安装
Powe Shell
插件
打开
Windows Terminal
,进入Power Shell
# 1. 安装 PSReadline 包,该插件可以让命令行很好用,类似 zsh
Install-Module -Name PSReadLine -Scope CurrentUser# 2. 安装 posh-git 包,让你的 git 更好用
Install-Module posh-git -Scope CurrentUser# 3. 安装 oh-my-posh 包,让你的命令行更酷炫、优雅
Install-Module oh-my-posh -Scope CurrentUser
- 修改
Power Shell
的配置文件
Set-PoshPrompt :用于设置
oh-my-posh
主题
code $Profile
<#* FileName: Microsoft.PowerShell_profile.ps1* Author: 刘 鹏* Email: littleNewton6@outlook.com* Date: 2021, Aug. 21* Copyright: No copyright. You can use this code for anything with no warranty.
#>#------------------------------- Import Modules BEGIN -------------------------------
# 引入 posh-git
Import-Module posh-git# 引入 oh-my-posh
Import-Module oh-my-posh# 引入 ps-read-line
Import-Module PSReadLine# 设置 PowerShell 主题
# Set-PoshPrompt ys
Set-PoshPrompt paradox
#------------------------------- Import Modules END -------------------------------#------------------------------- Set Hot-keys BEGIN -------------------------------
# 设置预测文本来源为历史记录
Set-PSReadLineOption -PredictionSource History# 每次回溯输入历史,光标定位于输入内容末尾
Set-PSReadLineOption -HistorySearchCursorMovesToEnd# 设置 Tab 为菜单补全和 Intellisense
Set-PSReadLineKeyHandler -Key "Tab" -Function MenuComplete# 设置 Ctrl+d 为退出 PowerShell
Set-PSReadlineKeyHandler -Key "Ctrl+d" -Function ViExit# 设置 Ctrl+z 为撤销
Set-PSReadLineKeyHandler -Key "Ctrl+z" -Function Undo# 设置向上键为后向搜索历史记录
Set-PSReadLineKeyHandler -Key UpArrow -Function HistorySearchBackward# 设置向下键为前向搜索历史纪录
Set-PSReadLineKeyHandler -Key DownArrow -Function HistorySearchForward
#------------------------------- Set Hot-keys END -------------------------------#------------------------------- Functions BEGIN -------------------------------
# Python 直接执行
$env:PATHEXT += ";.py"# 更新系统组件
function Update-Packages {# update pipWrite-Host "Step 1: 更新 pip" -ForegroundColor Magenta -BackgroundColor Cyan$a = pip list --outdated$num_package = $a.Length - 2for ($i = 0; $i -lt $num_package; $i++) {$tmp = ($a[2 + $i].Split(" "))[0]pip install -U $tmp}# update TeX Live$CurrentYear = Get-Date -Format yyyyWrite-Host "Step 2: 更新 TeX Live" $CurrentYear -ForegroundColor Magenta -BackgroundColor Cyantlmgr update --selftlmgr update --all# update ChocoloteyWrite-Host "Step 3: 更新 Chocolatey" -ForegroundColor Magenta -BackgroundColor Cyanchoco outdated
}
#------------------------------- Functions END -------------------------------#------------------------------- Set Alias BEGIN -------------------------------
# 1. 编译函数 make
function MakeThings {nmake.exe $args -nologo
}
Set-Alias -Name make -Value MakeThings# 2. 更新系统 os-update
Set-Alias -Name os-update -Value Update-Packages# 3. 查看目录 ls & ll
function ListDirectory {(Get-ChildItem).NameWrite-Host("")
}
Set-Alias -Name ls -Value ListDirectory
Set-Alias -Name ll -Value Get-ChildItem# 4. 打开当前工作目录
function OpenCurrentFolder {param(# 输入要打开的路径# 用法示例:open C:\# 默认路径:当前工作文件夹$Path = '.')Invoke-Item $Path
}
Set-Alias -Name open -Value OpenCurrentFolder
#------------------------------- Set Alias END -------------------------------#------------------------------- Set Network BEGIN -------------------------------
# 1. 获取所有 Network Interface
function Get-AllNic {Get-NetAdapter | Sort-Object -Property MacAddress
}
Set-Alias -Name getnic -Value Get-AllNic# 2. 获取 IPv4 关键路由
function Get-IPv4Routes {Get-NetRoute -AddressFamily IPv4 | Where-Object -FilterScript {$_.NextHop -ne '0.0.0.0'}
}
Set-Alias -Name getip -Value Get-IPv4Routes# 3. 获取 IPv6 关键路由
function Get-IPv6Routes {Get-NetRoute -AddressFamily IPv6 | Where-Object -FilterScript {$_.NextHop -ne '::'}
}
Set-Alias -Name getip6 -Value Get-IPv6Routes
#------------------------------- Set Network END -------------------------------
- 查看
oh-my-posh
主题
选1个自己喜欢的主题,并对
Set-PoshPrompt
进行修改
Get-PoshThemes
3. 疑难杂症
3.1 安装字体后 Poweline 仍然乱码
- 这主要与字体选择有关,安装自己喜欢的字体后,在选择字体时请使以 NF 结尾的字体,例如:
JetBrainsMono NF
。
3.2 Powerline 不显示 Python 虚拟环境
- 个人感觉这大概是
oh-my-posh
的bug
,因为不启用oh-my-posh
时,会默认显示python
的虚拟环境。
- 开启
oh-my-posh
主题后,python
虚拟环境不再显示。
- 解决这个问题需要修改
oh-my-posh
相应主题的配置文件 - 解决的方案有两个,一是修改
oh-my-posh
对应主题的 python 模块,二是在对应主题添加 Environment Variable 模块 - 主路径应该在
xxxxxxx\Documents\PowerShell\Modules\oh-my-posh\5.7.0\themes
- 方法一
{"type": "python","style": "powerline","powerline_symbol": "\uE0B0","foreground": "#100e23","background": "#906cff","properties": {"prefix": " \uE235 ","display_virtual_env": true,"display_default": true,"display_mode": "context"}},
- 方法二
找到
anaconda
的环境变量
dir env:
在
properties
配置相应的环境变量
{"type": "envvar","style": "powerline","powerline_symbol": "\uE0B0","foreground": "#193549","background": "#FF6E6E","properties": {"prefix": "\uE235","var_name": "CONDA_DEFAULT_ENV"}},
3.3 去掉主机名
- 去掉主机名需要修改对应主题的 "session"模块
禁用
"display_host"
即可
{"type": "session","style": "powerline","powerline_symbol": "\uE0B0","foreground": "#100e23","background": "#ffffff","properties": {"display_user": true,"display_host": false}},
3.4 遗留问题
- 仔细观察会发现
oh-my-posh
左侧会有一段空白,以前在Vim
中是通过换适版本的主题解决的,但是现在不知道入何解决了
参考文献
[1] Oh my Posh 3——易于自定义主题的Powershell美化工具
[2] Windows Terminal 完美配置 PowerShell 7.1
[3] PowerShell 界面美化
[4] Windows Terminal + oh-my-posh模块美化官方教程集锦以及常见问题(问题收集中)
[5] 简单配置与美化Powershell和Terminal
[6] Powershell 主题美化学习过程
Windows 10 使用 PowerShell 7 + Windows Terminal 及乱码、不显示 python环境问题相关推荐
- 微软在 Windows 10 中提供沙箱 Windows Sandbox
微软向专业版和企业版 Windows 10 发布了沙箱 Windows Sandbox. Windows Sandbox 是一个独立的临时桌面环境,用户可以在其中运行不受信任的软件而不必担心它们会对 ...
- 如何使用UUP来下载Windows 10 的安装镜像(Windows篇)
UUP全称为Unified Update Platform,即统一更新平台,是微软于2016年推出的更新模式,也是现在Windows的更新方式.UUP更新机制下Windows的更新方式为增量更新,在U ...
- Windows 10 电脑加装固态硬盘时的分区显示状态良好(恢复分区)
Windows 10 电脑加装固态硬盘时的分区显示状态良好(恢复分区) 如何删除恢复分区 1. 以管理员身份打开windows命令行 2. 输入disk disk回车会列出系统磁盘 3. 选择&quo ...
- Windows 10 终于干掉了 Windows 7!
不容易啊!不容易! 今天早上,笔者的电脑坏了,刚被运维小哥换上了Windows 10. 正在我和小哥讨论,到底是7好用.还是10好用的时候,大洋那端的媒体,就传来大料--Windows 10市场份额, ...
- Windows 10 1803 升级到 Windows 10 1903
官网下载 https://www.microsoft.com/ZH-CN/software-download/windows10 Media Creation Tool工具来创建安装U盘安装介质,然后 ...
- Windows 7 连接 Windows 10 共享打印机,Windows 无法连接打印机,操作失败,错误为0x0000011b 的终极解决办法
Windows 7 连接 Windows 10 共享打印机出现错误 0x000001b,建议不要通过卸载Windows10系统的KB5005565安全更新来解决该问题(犹如削足适履),正确的处理方法是 ...
- 禁用服务器系统关机,关机 允许系统在无需登录 Windows 10 (的情况下) - Windows security | Microsoft Docs...
关机: 允许系统在未登录的情况下关闭 04/19/2017 本文内容 适用范围 Windows 10 介绍关闭:允许系统关闭而无需登录安全策略设置的最佳方案.位置.值.策略管理 和安全注意事项 . 参 ...
- Windows 10使用PowerShell创建系统还原点的技巧
我们在使用Win10系统的过程中,可能会碰到各种系统故障,当问题太过严重的时候,我们往往会通过系统还原来解决问题.今天小编将给大家分享一个系统还原的技巧,下面我们来看看Win10使用PowerShel ...
- Windows 10系统永久关闭Windows Defender Antivirus防病毒程序方法
Win + R 键运行 gpedit.msc 找到 计算机配置 -> 管理模板 -> Windows 组件 -> Windows Defender 防病毒程序 右边双击 " ...
最新文章
- 黑帽大会2014:10个酷炫的黑客工具
- Python成长之路第一篇(4)_if,for,while条件语句
- 效果超赞服务器挤爆!用GAN生成人像油画火了,带你一秒回到文艺复兴
- MSP430常见问题之FLASH存储类
- MyBatis之使用JSONObject代替JavaBean优雅返回多表查询结果
- python的装饰器迭代器与生成器_python3 装饰器、列表生成器、迭代器、内置方法详解等(第四周)...
- word2vec模型的理解
- 「 每日一练,快乐水题 」1189. “气球” 的最大数量
- [转]Mysql数据库开发的36条原则
- 清华大学:全面如期开课,履行社会责任!
- php curl 关闭tcp连接,BASH CURL:顺序运行时,请勿关闭请求之间的连接
- 23个小动作让你记忆力惊人
- 超cool的firefox插件之PicLens
- 创建ubuntu根文件系统
- unity 罗技G29开发
- 关于如何把用手机查看原型
- java 解压rar_java 解压rar文件
- 如何利用QQ有效推广
- The PostScript backend does not support transparency; partially transparent artists will be rendered
- 取消职称英语计算机考试的文件,2010年有没有可能取消职称英语及计算机考试...