念念不忘
必会回响

Windows 11终端美化记录

近期换了Win11,发现现在Win下的powershell也可以像macOS的zsh那样,配合iterm2做一番美化,网上搜了很多文章,但是大部分都比较老旧,已经不符合现在版本的安装方式,所以跟着官方文档一步一步走,发现步骤非常简单,并不如网上说的那么复杂,便有此一记。

1. 环境说明

  • Windows11专业版  22H2
  • 安装vscode,并且配置了环境变量,可以使用code来打开vscode

2. 安装oh-my-posh

winget install JanDeDobbeleer.OhMyPosh -s winget

winget在Windows11中默认就有了,也挺好用,没不要在单独安装sqoop(和macOS上的brew类似)之类的工具。

请不要使用网上各种文章的Install-Module oh-my-posh -Scope CurrentUser,官方已经不推荐了。 
参考文档:PowerShell module | Oh My Posh

3. 配置oh-my-posh

code $Profile

填入如下内容:

oh-my-posh init pwsh | Invoke-Expression

重启PowerShell。

此时会打开一个默认主题的Shell,并且有大量的乱码。

4. 下载字体

配置过oh-my-zsh的都知道,此时需要一些名为powerline的字体文件才可以正确显示,我试过使用sqoop下载字体,或者手动下载字体包去安装,经常会遇到打开power shell的时候,提示字体文件未找到的问题。但是通过如下方式下载并安装字体就再也不会出现这个问题。

oh-my-posh font install

选择JetBrainsMono,等待下载即可。喜欢其他的请自行选择

下载完成后这些乱码就消失了。

5. 安装插件

插件可以使oh-my-posh和power shell更为强大,这里只需要安装如下几个插件即可。

# Git插件
Install-Module posh-git -Scope CurrentUser
# 自动补全
Install-Module -Name PSReadLine -Scope CurrentUser -Force
# 给目录加图标
Install-Module -Name Terminal-Icons -Repository PSGallery
# 给目录加颜色
Install-Module DirColors

然后编辑$Profile

code $Profile

添加如下信息:

Import-Module DirColors
Import-Module -Name Terminal-Icons
Import-Module posh-git
Import-Module PSReadLine

然后重启PowerShell。

6. 更换主题

觉得默认主题不好看?那就换一个,执行如下命令,可预览主题

Get-PoshThemes

看到中意的主题,继续修改配置文件,只需替换`主题名.omp.json`就行,实际情况根据你得路径来设置。

最终配置如下:

code $Profile

# oh-my-posh init pwsh | Invoke-Expression
oh-my-posh init pwsh --config 'C:\Users\liyan\AppData\Local\Programs\oh-my-posh\themes\unicorn.omp.json' | Invoke-Expression
Import-Module DirColors
Import-Module -Name Terminal-Icons
Import-Module posh-git
Import-Module PSReadLine

unicorn就是我们选中的主题名。

7. 效果图

优点是界面更好看了,缺点嘛,第一次打开power shell会很慢,如图中所示,加载配置使用了3356毫秒。

8. 配置代理

对于有代理需求的,可以在PowerShell中新增配置如下:

# 配置代理
function set_proxy_variable {
	$proxy = 'http://127.0.0.1:1080'

    # temporary
    $env:HTTP_PROXY = $proxy
    $env:HTTPS_PROXY = $proxy

    # forever
    # [System.Environment]::SetEnvironmentVariable("HTTP_PROXY", $proxy, "User")
    # [System.Environment]::SetEnvironmentVariable("HTTPS_PROXY", $proxy, "User")

    Write-Host "`n   OPEN powershell proxy channel!`n"
}

function unset_proxy_variable {
    # temporary
    Remove-Item env:HTTP_PROXY
    Remove-Item env:HTTPS_PROXY

    # forever
    # [Environment]::SetEnvironmentVariable('http_proxy', $null, 'User')
    # [Environment]::SetEnvironmentVariable('https_proxy', $null, 'User')

    Write-Host "`n   CLOSE powershell proxy channel!`n"
}

Set-Alias proxy set_proxy_variable
Set-Alias unproxy unset_proxy_variable

配置完成后,重新打开PowerShell,输入proxy即可开启代理,输入unproxy即可关闭代理。

推荐大家升级到PowerShell 7 。

winget install --id Microsoft.Powershell --source winget
赞(3) 打赏
未经允许不得转载:堆上小栈 » Windows 11终端美化记录

评论 抢沙发

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册