Windows 下终端及工具配置

写这篇文章的主要目的是总结一下我目前在 Windows 上使用的命令行终端和 Shell 的配置,让自己拥有有更舒适愉悦的使用体验。

Powershell 美化与配置

在 Windows 下会时常用到 Powershell 来进行一些简单的命令行操作,比如使用 Python、Node 等。
然而系统自带的 Powershell 丑的不忍直视,为了让自己用它的时候拥有更加愉悦的心情,得稍微折腾一下。在 Linux 环境下有大名鼎鼎的 oh-my-zsh,于是 Windows 下便也诞生了 oh-my-posh ,用来美化 Powershell。

Terminal Preview

安装的方法也非常简单,确保你已经安装了 Git 客户端。
首先打开 Powershell 输入以下指令安装 posh-git 以及 oh-my-posh

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

之后运行命令 notepad $PROFILE 来打开默认的配置文件,并在最后加上:

1
2
3
Import-Module posh-git
Import-Module oh-my-posh
Set-Theme Paradox

这样便能启用之前安装的两个插件,以及将主题设置为了 Paradox。oh-my-posh 还支持其它的一些主题

除此之外,为了一些特殊的符号的显示正常,我们还需要 Powerline 字体,才可以得到和上图一样的效果。
这里不得不推荐一下微软官方的开源字体 Cascadia Code,在 Windows Terminal 中将 fontFace 设置成 Cascadia Code PL 即可。
其它的还有 Powerline fontsNerd-fonts

Windows Terminal 的配置

从去年 Build 大会发布以来,Windows Terminal 就一直在 GitHub 上积极的迭代,功能也日渐完善,现在它已经是我在 Windows 环境下的主力终端了。

目前 Windows Terminal 还没有可视化的设置界面,需要通过手动编辑
配置文件才能修改配置。可以参考它的 SettingSchema 来增删配置。这里也有一份修改官方的修改教程:Editing Windows Terminal JSON Settings

我将全局的字体修改为了 “Cascadia Code PL” 以及将字号调整成了 12。

1
2
3
4
5
6
"defaults":
{
// Put settings here that you want to apply to all profiles
"fontFace" : "Cascadia Code PL",
"fontSize" : 12
}

我更加喜欢 “One Half Dark” 的主题。内置主题的话可以在 ColorTool 里面的 schemes 里找到,也可以自己在配置文件的 schemes 块添加自己的主题,如 dracula

1
2
3
4
5
6
7
8
9
{
// Make changes here to the powershell.exe profile
"guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
"name": "PowerShell",
"commandline": "powershell.exe",
"hidden": false,
"colorScheme" : "One Half Dark",
"startingDirectory" : "."
},

keybindings 区域可以添加一些常用的快捷键。

1
2
3
4
5
6
7
// Add any keybinding overrides to this array.
// To unbind a default keybinding, set the command to "unbound"
"keybindings": [
{ "command": "copy", "keys": ["ctrl+shift+c"] },
{ "command": "paste", "keys": ["ctrl+shift+v"] },
{ "command": {"action": "splitPane", "split": "auto"}, "keys": ["ctrl+|"]}
]

为了能够更方便的使用,还可以在系统右键添加全局的 “Open Terminal Here” 的菜单。这样一来,在任何文件夹里面可以方便的打开 Terminal 并且定位到那个文件夹下面。可以在 GitHub 上的这个 Issue 里找到一些社区用户提供的方法。

创建一个 reg 文件,将下面内容中的 <user> 改为你用户的名字后,保存并执行即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Windows Terminal here"
"Icon"="C:\\Program Files\\WindowsApps\\Microsoft.WindowsTerminal_0.10.781.0_x64__8wekyb3d8bbwe\\WindowsTerminal.exe"

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="C:\\Users\\<user>\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe -d ."

[HKEY_CLASSES_ROOT\Directory\shell\wt]
@="Windows Terminal here"
"Icon"="C:\\Program Files\\WindowsApps\\Microsoft.WindowsTerminal_0.10.781.0_x64__8wekyb3d8bbwe\\WindowsTerminal.exe"

[HKEY_CLASSES_ROOT\Directory\shell\wt\command]
@="C:\\Users\\<user>\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe -d ."

WSL 的配置

在不少时候需要用暂时到 Linux 的环境。
众所周知,在 Windows Subsystem for Linux (WSL) 问世之后,Linux “真的变成了” Windows 的一个”子系统”了。
之前有使用过 oh-my-zsh 但是 zsh 的启动速度过于感人,就转而改用了开箱即用的 fish-shell

这里以在 Ubuntu 环境下为例。
安装 fish-shell 非常简单,只需要执行 sudo apt install fish 即可。
之后继续安装 oh-my-fishcurl -L https://get.oh-my.fish | fish
之后可以通过 omf theme 来查看主题omf install <theme> 来安装主题。

想要默认启动 fish shell 的话需要在 ~/.bashrc 文件最后加上fish

参考