Windows下有cmdpowershell两种命令行工具,但是系统自带的工具实在是太丑了。微软后来推出了Windows Terminal,直接让命令行工具颜值上了几个档次,再配上一些其他工具可以让你的Windows命令行也不输Linux的体验。

效果图

效果图.png

添加到右键菜单

右键菜单打开当前目录是必须要有的,不然每次打开终端再cd实在太蠢。可以参考Windows管理右键菜单

在注册表HKEY_CLASSES_ROOT\Directory\Background\shell下新建项wt(名字随意)。
默认值改为"Open with Windows Terminal"(按自己喜好来)
添加字符串值Icon,值为图标的路径。(图标下载wt_32.ico 为Windows Terminal图标)

注册表.png

wt下添加子项command,默认值为 "Windows Terminal 路径" "%V"
Windows Terminal程序一般在C:\Users\用户名\AppData\Local\Microsoft\WindowsApps下的wt.exewtd.exe"%V"表示当前目录,不能省略。

添加到右键菜单.png

最后打开Windows Terminal的设置,找到powershellprofiles,将其startingDirectory改为"."

配置.png

找个地方右键打开尝试下吧

主动打开初始目录到用户目录下

当我们把startingDirectory改为"."后,不使用右键打开而直接启动Windows Terminal的话会定位在C:\WINDOWS\system32下,这其实很不舒服,但是也有办法让其在主动打开时定位在用户目录下。

打开C:\Users\用户名\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1,没有该文件则手动创建。该文件是用户的powershell配置文件,在每次启动powershell的时候都会执行里面的命令。

在文件中写入下面命令,命令的意思是如果启动时的目录在C:\WINDOWS\system32,那就切换到用户目录下。

$l = Get-Location
if ($l.Path -eq "C:\WINDOWS\system32") {
  Set-Location "~"
}

安装oh-my-posh

安装所需工具

Install-Module posh-git -Scope CurrentUser
Install-Module oh-my-posh -Scope CurrentUser

如果遇到安装不被允许,用管理员身份打开powershellWindows Terminal,执行Set-ExecutionPolicy Bypass

再次打开C:\Users\用户名\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1,在文件中加入

# posh-git 我使用的离线安装,正常Install-Module安装的话 Import-Module posh-git 即可
Import-Module 'C:\Users\SakuraDon\Documents\WindowsPowerShell\Modules\posh-git\src\posh-git.psd1'
Import-Module oh-my-posh
# 设置主题
Set-Theme Paradox

这里我是直接从git上clone的源码包后导入,因为我直接Install-Module安装的posh-git打开powershell时会有延迟,而离线安装的没有,原因不明

自定义主题

自带有几个主题,git官网也有预览。

主题文件在C:\Users\用户名\Documents\WindowsPowerShell\Modules\oh-my-posh\2.0.332\Themes下。

要自定义主题的话,先创建文件夹C:\Users\用户名\Documents\WindowsPowerShell\PoshThemes,然后在里面创建自己的主题文件。

简单的DIY的话,就是从官方主题里挑一个喜欢的布局的主题,然后复制到自定义主题目录,在主题文件最后修改颜色或是一些字符即可。

例如我的主题就是官方的Paradox主题改了下颜色而已。

主题.png

如果箭头出现如下乱码,则是当前字体不支持,还是在powershellprofiles中修改字体即可。使用powerline fonts的话基本没问题,我用的是Delugia Nerd Font

乱码.png