5分钟打造出舒适的Windows Terminal

1,502 阅读4分钟

0.介绍

Linux平台的的终端基本都是完成品,可以开箱即用。

但是,Windows平台哪怕最新发布的Terminal也显得差强人意。

因此,我们得对它进行一些预设置,让它满足我们的基本使用需求。

我目前使用的方案是Starship+Ubuntu Color Schema+PSReadLine

不使用oh-my-posh的原因是它太慢了,加载它和posh-git两个插件,每次启动都得等1s。

虽然可以直接把终端挂后台,但是在IDE里面调用也要等加载就很难受。

因此我将prompt换成了Starship,它是由Rust编写的,速度非常快,加载几乎感觉不到延迟,而且同样是开箱即用的,可以快速部署,节约配置时间。

效果图:

Untitled.png

Okay,做完介绍,接下来开始讲解具体配置过程。

1.Ubuntu Classic配色方案

选用Ubuntu经典配色方案的原因单纯因为个人喜欢。

如果大家有别的偏好的话,也可以搜索其他的配色方案进行替换,方法是相同的。

1.1 打开配置文件

  1. 打开Windows Terminal
  2. 按下Ctrl+,(逗号)进入设置页面
  3. 点击设置页面,左下角的齿轮,打开配置文件

1.2 编辑配置文件

  1. 搜索schemes,在其中添加Ubuntu Classic配色方案
{
    "background": "#300A24",
    "black": "#2E3436",
    "blue": "#3465A4",
    "brightBlack": "#555753",
    "brightBlue": "#729FCF",
    "brightCyan": "#34E2E2",
    "brightGreen": "#8AE234",
    "brightPurple": "#AD7FA8",
    "brightRed": "#EF2929",
    "brightWhite": "#EEEEEC",
    "brightYellow": "#FCE94F",
    "cursorColor": "#BBBBBB",
    "cyan": "#06989A",
    "foreground": "#EEEEEC",
    "green": "#4E9A06",
    "name": "Ubuntu Classic",
    "purple": "#75507B",
    "red": "#CC0000",
    "selectionBackground": "#B5D5FF",
    "white": "#D3D7CF",
    "yellow": "#C4A000"
}
  1. 设置默认配色方案为Ubuntu Classic

在profiles.defaults中添加上"colorScheme": "Ubuntu Classic"(也可以在设置中直接选用)

"defaults": 
{
    "colorScheme": "Ubuntu Classic",
    "font": 
    {
        "face": "JetBrainsMono Nerd Font Mono"
    },
    "opacity": 100,
    "useAcrylic": false
},
  • 这里顺便设置了字体,到Nerd Font下载安装就好了,我推荐使用JetBrainsMono。(链接附在下方)

github.com/ryanoasis/n…

2.Starship Prompt

因为网络原因,按照官网使用winget进行安装的方法还得改地区,比较麻烦。

这边推荐直接到GitHub下msi安装包。(链接一样附在下方)

github.com/starship/st…

安装完成后,添加启动命令到Powershell的配置文件当中。

在terminal中输入下列命令,用vscode打开powershell配置文件。

code $PROFILE

在配置文件中添加该命令:

Invoke-Expression (&starship init powershell)

之后,每次打开终端terminal就会自动运行Starship Prompt了。

3.PSReadLine

PSReadLine是微软开发的命令提示工具。

按下Win+X快捷键,用管理员权限打开Windows Terminal,然后执行下列命令:

Install-Module -Name PSReadLine -Scope AllUsers -Force -SkipPublisherCheck

安装完成后,使用同样的方式修改Powershell配置文件,向其中添加:

Set-PSReadlineKeyHandler -Key Tab -Function MenuComplete

之后就能跟在Linux中一样,通过按Tab键进行命令补全了。

4.设置别名

最后一个提示体验的方法就是给常用命令设置别名。

和加载Starship和PSReadLine一样,都是通过编辑profile进行配置。

这边提一点值得注意的地方,无参命令可以直接通过Set-alias命令进行设置,而有参命令得嵌套在函数里面,否则会报错。

下面是我的配置文件,给大家做个参考。

#Starship Prompt
Invoke-Expression (&starship init powershell)

#开启命令行补全提示
Set-PSReadlineKeyHandler -Key Tab -Function MenuComplete
#Import-Module posh-git

#Functions for Paramterized Alias
function cdTest(){
    cd C:\Users\foobar\Test
}
function cdProjects(){
    cd C:\Users\foobar\Documents\IdeaProjects
}
function resources(){
    cd C:\Users\foobar\Test\newbee-mall-master\src\main\resources
}
function here(){
    explorer.exe .
}
function remote(){
    ssh osboxes@192.168.0.113
}

#Command Alias
Set-alias 'ifconfig' 'ipconfig'
Set-alias 'touch' 'ni'
Set-alias 'grep' 'findstr.exe'
Set-alias 'vi' 'code'

#Quick Access to Directory
Set-alias 'test' 'cdTest'
Set-alias 'projects' 'cdProjects'

5.题外话

最后,再说点题外话。

根据V2EX上大家常用命令的统计,还是使用git,docker,文件管理命令(cd,ls…),编辑/构建/编译工具居多。

经过上述简单的配置,应该能够满足日常需求的基本体验了。

个人觉得,这可能也是接下来很长一段时间的最佳方案了。

这也是我在掘金的第一次分享,希望能够对大家有帮助。