Windows Terminal · 调教
# 安装Windows Terminal(简版)
今天就带大家一起来玩终端,是的,就是如题:Windows Terminal
这个绝对好玩,而且比一般的终端体验确实强很多,配置了美化的效果后,感觉每天都想沉浸在终端的世界里(bushi~,但是今天先不讲太深的美化教程,只走个流程一把梭式的无脑配置就完事了好吧~(如果需要具体的美化教程,可以看这里:个人使用的一个终端美化器配置,基于M365Princess)
# 第一步:先下个Windows Terminal(简称:wt)
官方给了好几种下载安装方式,这里鄙人推荐,如果没有很强烈的其他顾虑或者因素,就按照推荐的方案,走微软商店来安装(占不了多大空间):
完成安装之后,那就把Windows Terminal先放一下,然后…
# 第二步:下载个JetBrains Mono和终端适用的字体
普通字体里面,小弟就在这里安利一波JetBrains Mono!!!无他!是真的好看好吧~
因为终端侧后续会有图标等展示,需要兼容到这种效果的展示就需要NF的字体,这里就推大家用JetBrainsMono Nerd Font(点我直接下载),要是对这个不满意,也可以看看其他的Nerd Font,任你选择,但得用这页面的一种才行哦~不然后续美化终端的时候,图标的显示是有问题的!!!
# 第三步:安装JetBrains Mono + Nerd Font
下载,解压,打开文件夹,然后Ctrl + A:为所有用户安装(点安装也行,差异就是在其他用户登录这台Windows后就没有这个字体)
JetBrainsMono Nerd Font同理:
OK,字体已经安装完毕~
# 第四步:修改Windows Terminal配置为自己特调版(配置自己顺手的点和使用习惯)
打开第一步安装好的wt,然后可以看到一个顶部有个向下的箭头图标,点它,弹出一堆选项,其中一个设置,点它!
这里就不针对每一个配置去说了,直接左下角打开JSON配置文件,根据鄙人的习惯,需要调整的有项有以下几个:
{
"initialRows": 40, // 启动 > 启动大小 > 行: 40(建议16寸及以上显示器设置40,14寸设置36,以此类推)
"centerOnLaunch": true, // 启动 > 启动参数 > 在启动时居中:true => 开启
"theme": "system", // 外观 > 应用程序主题:system => 使用Windows主题
"useAcrylicInTabRow": true, // 外观 > 在选项卡行中使用亚克力材料:true => 开启
// 下面配置对应在:profiles > defaults属性节点中:
"colorScheme":
{
"dark": "Tango Dark",
"light": "One Half Dark"
},
"font":
{
"face": "JetBrains Mono"
}
// 下面配置对应在:profiles > list属性节点中的name为Windows PowerShell同级:
"font":
{
"face": "JetBrainsMono Nerd Font"
},
// 下面配置对应在:profiles > list属性节点内追加到list列表的最后一项(添加自定义Shell):
{
"altGrAliasing": true,
"antialiasingMode": "grayscale",
"closeOnExit": "automatic",
"commandline": "cmd /c chcp 65001&&plink -ssh 服务器公网ip -l root -pw 连接密码",
"cursorShape": "bar",
"font":
{
"face": "JetBrainsMono Nerd Font",
"size": 12.0
},
"guid": "{7530bed3-9deb-45dd-b91a-fbbfd0b1c8da}",
"hidden": false,
"historySize": 9001,
"icon": "ms-appx:///ProfileIcons/{61c54bbd-c2c6-5271-96e7-009a87ff44bf}.png",
"name": "root@服务器公网ip",
"padding": "8, 8, 8, 8",
"snapOnInput": true,
"startingDirectory": "%USERPROFILE%",
"useAcrylic": false
}
}
好了,到这就已经结束了wt的配置,基本符合了鄙人习惯的操作,接下来,再给这个wt加点花,让它不仅好用,还好看。
# 基于Oh My Posh终端美化篇(简版)
在上面前记有说到,可以详细看鄙人另外记录完整版的美化教程,macOS和Windows的都有:
# 第一步:先下个Oh My Posh
按照官方的意思,第一个给的下载安装的方式是走微软商店
但是鄙人的建议是走独立安装包,因为自行安装的时候是可以选择指定安装路径滴~
在Release页可以下载独立安装包:https://github.com/JanDeDobbeleer/oh-my-posh/releases
下载完成后同样鄙人这里建议Install for all users(为所有用户进行安装),搞掂!
# 第二步:开始美化Windows Terminal
按照oh my posh的指示,我们可以配置omp为shell的主题,以达到美化的效果:Change your prompt | Oh My Posh
如果之前你们都没有来捣鼓这个东西,按正常来说,本地都是不存在Microsoft.PowerShell_profile.ps1这个文件的,那就需要先打开前面安装好的Windows Terminal,然后执行这一串:
# 创建配置文件:Microsoft.PowerShell_profile.ps1
New-Item -Path $PROFILE -Type File -Force
得到:
前往这个目录,你就会看到配置文件,打开编辑:
oh-my-posh init pwsh | Invoke-Expression
保存,再去wt输入:
. $PROFILE
噔噔噔~(官方默认主题效果):
# 贡献小弟定制版美化主题
那我来炫一下小弟的定制化主题,基于M365Princess:
oh-my-posh init pwsh --config "https://raw.githubusercontent.com/dosicker/terminal-beautify/main/config/agxm.omp.json" | Invoke-Expression
保存,再去wt输入:
. $PROFILE
噔噔噔~(小弟调教版主题效果):
下面贴上完整的鄙人定制版吧,不过使其生效前得先提前安装几个powershell的模块包,在wt或powershell中管理员模式打开,执行下面几段命令,来提前下载拉好本地的模块,否则会报错(一段段执行):
# 安装:posh-git
Install-Module -Name posh-git -Scope AllUsers
# 安装:npm-completion
Install-Module -Name npm-completion -Scope AllUsers
# 安装:Get-ChildItemColor
Install-Module -Name Get-ChildItemColor -Scope AllUsers
# 最后这一个可能是部分网友会碰到的,就是部分的cmdlet冲突或Set-PSReadLine函数异常/无法正常写入快捷键绑定使用
# 这个原因大概率是由于PSReadLine这个模块包的版本低了,或者本地没有装,需要装一下:
Install-Module PSReadLine -RequiredVersion 2.3.6 -Force
# 若还不行,强制安装最新版
Install-Module PSReadLine -Force
这些就是小弟的定制版前置工作,都装好后,开始食用:
# 执行 oh-my-posh 应用(更新)
function ApplyPoshTheme {
oh-my-posh init pwsh --config "https://raw.githubusercontent.com/dosicker/terminal-beautify/main/config/agxm.omp.json" | Invoke-Expression
}
function Switch-PoshTheme {
# 获取存储在注册表中当前系统的应用外观模式:1 => Light;0 => Dark
$appsTheme=Get-ItemPropertyValue -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize" -Name "AppsUseLightTheme"
if ($appsTheme -eq 1) {
$Env:APPEARANCE_MODE='light'
} else {
$Env:APPEARANCE_MODE='dark'
}
ApplyPoshTheme
}
# 相关模块导入
Import-Module posh-git
Import-Module npm-completion
Import-Module Get-ChildItemColor
# $Env:APPEARANCE_MODE=$mode
# Theme BEGIN oh-my-posh beautify
# oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\agxm.omp.json" | Invoke-Expression
# 执行
if ($PSVersionTable.Platform -eq 'Unix') {
ApplyPoshTheme
} else {
# ps-read-line
Import-Module PSReadLine
Switch-PoshTheme
}
# 设置命令历史提示
Set-PSReadLineOption -PredictionSource History
# 配置Tab自动补全
Set-PSReadLineKeyHandler -Key Tab -Function MenuComplete
# 上下方向键,历史补全
Set-PSReadLineKeyHandler -Key UpArrow -Function HistorySearchBackward
Set-PSReadLineKeyHandler -Key DownArrow -Function HistorySearchForward
# 设置 Ctrl+z 为撤销
Set-PSReadLineKeyHandler -Key "Ctrl+z" -Function Undo
# 使用 ls 和 ll 查看目录
function ListDirectory {
(Get-ChildItem).Name
Write-Host("")
}
# Set-Alias -Name ls -Value ListDirectory
Set-Alias -Name ll -Value ListDirectory
Set-Alias -Name list -Value Get-ChildItem
# PowerShell 5.1及以下版本无法设置ls的cmdlet,因为它的scope为AllScope选项,会出现(WriteError: (ls:String) [Set-Alias], SessionStateUnauthorizedAccessException)错误
# 而它自身的ls cmdlet命令相等于Get-ChildItem/dir,所以调整ll的cmdlet为(Get-ChildItem).Name形式
# set which cmdlet
function WhichCmdlet {
$(Get-Command $args[0]).Source
}
Set-Alias -Name which -Value WhichCmdlet
# set touch cmdlet
function touch {
param (
[string]$path
)
if (!(Test-Path $path)) {
New-Item -ItemType File -Path $path
} else {
(Get-Item $path).LastWriteTime = Get-Date
}
}
# 设置命令历史列表提示
# Set-PSReadLineOption -PredictionViewStyle ListView
# 每次回溯输入历史,光标定位于输入内容末尾
Set-PSReadLineOption -HistorySearchCursorMovesToEnd
最后,不要忘了使其生效:
. $PROFILE
关于完整版的终端美化的详细食用介绍传送门➡️🚪:GitHub - dosicker/terminal-beautify: 只是一个终端的美化配置啦~
OK,本期折腾记结束,老样子,有啥疑问欢迎评论,来探讨,多沟流~
拜拜~👋