WIN11 + Windows Terminal + PowerShell 7 核武搭配

之前写了《像MAC一样使用win10的Terminal》《像MAC一样使用win10的Terminal(精简版)》 ,使用如丝滑般流畅!

本文重点:

  • WIN11
  • Windows Terminal
  • PowerShell 7
  • PowerShell Module 扩展
  • 包管理工具

老规矩,先看图:

此图有彩蛋

准备工作

  1. 安装 Windows Terminal

Microsoft Store 搜索下载安装即可

  1. 安装 Scoop
Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')

# 或者使用精简命令安装
iwr -useb get.scoop.sh | iex

如果安装报错,请先执行下面操作

Set-ExecutionPolicy RemoteSigned -scope CurrentUser
  1. 安装字体
    推荐字体:FiraCode NF Retina (该字体支持 ligature 连字功能)
# 搜索
Scoop search FiraCode 

# 下载
Scoop install FiraCode-NF

或者
Nerdfont 官网下载
懒人专用 zip

安装 PowerShell Core

我目前能获取到的最新稳定版是 PowerShell 7.2

自选版本下载
懒人专用 x64 msi

注入灵魂

  1. 修改 Windows Terminal 默认设置

修改 Windows Terminal 的默认启动为:新安装的 PowerShell 7


修改默认启动为新安装的 PowerShell 7

修改PowerShell 7 的外观设置


修改PowerShell 7 的外观设置

修改Powershell 7 的背景设置


修改Powershell 7 的背景设置
  1. 安装插件 (Module)
# Windows Terminal 输入:

# 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

  1. 配置环境
# Windows Terminal 输入:
notepad $profile

如果没有对应的文件,点保存创建即可(直接 Ctrl+S 就行,文件名已经是自动生成好的)
复制以下配置

Import-Module posh-git
Import-Module oh-my-posh

$env:PYTHONIOENCODING="utf-8"

# Remove curl alias
If (Test-Path Alias:curl) {Remove-Item Alias:curl}
If (Test-Path Alias:curl) {Remove-Item Alias:curl}
# Remove-Item alias:ls -force
Set-Alias ll Get-ChildItemColor -option AllScope
Set-Alias ls Get-ChildItemColorFormatWide -option AllScope

# Setup other alias
Set-Alias open Invoke-Item
Set-Alias .. GoBack
Set-Alias glog GitLogPretty
Set-Alias gst GitStat

function GitLogPretty {
  git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --all
}

function GitStat {git status}

function GoBack {Set-Location ..}

# Set theme
Set-PoshPrompt -Theme material

# Set ‘History’ as Prediction Source  
$PSReadLineOptions = @{
     PredictionSource  = "History"
     HistoryNoDuplicates = $true
     HistorySearchCursorMovesToEnd = $true
     Colors = @{
         Command             = [ConsoleColor]::DarkGray
         Number              = [ConsoleColor]::DarkGreen
         Member              = [ConsoleColor]::DarkMagenta
         Operator            = [ConsoleColor]::DarkGray
         Type                = [ConsoleColor]::DarkRed
         Variable            = [ConsoleColor]::DarkYellow
         Parameter           = [ConsoleColor]::DarkGreen
         ContinuationPrompt  = [ConsoleColor]::DarkGray
         Default             = [ConsoleColor]::DarkGray
         Emphasis            = [ConsoleColor]::DarkGray
         Error               = [ConsoleColor]::DarkRed
         Selection           = [ConsoleColor]::DarkGray
         Comment             = [ConsoleColor]::DarkCyan
         Keyword             = [ConsoleColor]::DarkRed
         String              = [ConsoleColor]::DarkGray
     }
 }
Set-PSReadLineOption @PSReadLineOptions
Set-PSReadLineKeyHandler -Key Tab -Function Complete 
Set-PSReadLineKeyHandler -Key "Ctrl+d" -Function MenuComplete 
Set-PSReadLineKeyHandler -Key "Ctrl+z" -Function Undo 
Set-PSReadLineKeyHandler -Key UpArrow -Function HistorySearchBackward 
Set-PSReadLineKeyHandler -Key DownArrow -Function HistorySearchForward 

以上,完美~

推荐阅读更多精彩内容