精致漂亮的界面和高效便捷的开发工具就像是台前和幕后,前端er的眼里容不下一个丑陋的盒子,也免不了嫌弃Windows系统审美上的落后……
同样是终端,为什么别人家的终端那么漂亮,我们CMD就是傻大黑粗?你家设计师审美独特做工考究,我家的就缺根筋吗?——还真是。
诚然,CMD是历史遗留的产物,拿去和Mac的终端比本就不该抱有什么指望。尽管微软官方推陈出新,PowerShell基本做到完全替代CMD,却仍未解决外观上的简陋不养眼、不支持Win彩色Emoji和Unicode字符的问题。
倘若把PowerShell看作是CMD的升级的话,似乎也只是浮光掠影,一尘不变,反倒徒增烦恼——我想用WIN+R开个PowerShell还得把‘PowerShell’完整打出来?
终于,微软官方发布了这个工具,解决了上述所有问题,让我不需要再羡慕Mac。
姗姗来迟的官方解决方案——Windows Terminal
主要功能
- 多选项卡
- 窗格(窗口内分屏)
- Unicode和UTF-8字符支持
- GPU加速文本呈现引擎
- 自定义主题、自定义文本、颜色、背景颜色/图片
- 快捷键绑定
若图中的界面正是令你心驰神往的Windows终端,请完整阅读以下教程或选择性进行配置。
笔者注:下文使用了较多篇幅用于展示配置文件中代码,遂直观看来略显枯燥,但实际上完整配置完只需要短短几分钟(在网络条件良好的情况下)。
如何使用
- 软件准备
- 外观配置
- 功能配置
软件准备
1. PowerShell
- Win10自带的多为PowerShell v1.0,由于低版本不支持部分所需命令,请手动更新至 最新版
$PSUersionTable #可通过命令查看PowerShell版本
2. Windows Terminal
- 打开 应用商店 单击获取按钮,免费获取后跳转值本地应用商店
- 或者直接打开Win10本地应用商店搜索Windows Terminal
3. Cascadia Code 字体 ( 推荐 )
- 连体字与图中Git状态栏有关
- 进入 Cascadia Code字体发布页
- 第一个链接为Windows字体:
- 解压后分別进入
/otf
,/ttf
> 使用Ctrl
+A
选中全部字体 > 为所有用户安装 - 全部安装好的字体包括 Cascadia Code, Cascadia Code PL, Cascadia Mono PL, Cascadia Mono PL, Mono即等宽字体,PL即连字
- Cascadia的连体似乎比Fira Code多,个人感觉代码排版和命令行的字体需求有微妙的区别, 前者合适Fira Code,后者合适Cascadia.
4. 原理
- 如果把Windows Terminal比作浏览器,则系统已安装的PowerShell,CMD等像是互不相干的网页的选项卡
- Terminal没有图形设置界面,其配置文件是一个JSON格式的文件:setting.json
- 其配置文件可以对Windows Terminal进行全局设置
- 其配置文件可以对每个在Windows Terminal下运行的本地终端进行单独配置,不影响本地终端本身,像是一层遮罩、蒙版
setting.json预览
{
//默认Profile环境,即启动Terminal时的环境
"defaultProfile":
"requestedTheme":"dark" //窗口主题
"profiles": [ //Profiles列表
{ //列表首个选项&新建选项卡选项
... //自动生成UUID和基础配置
}
],
"schemes": [ //各终端自定义配色方案
{
...
}
],
"keybindings": [] //设置快捷键绑定
}
5.快捷启动
- 与cmd快捷启动相同
WIN+R
- 键入‘WT’
ENTER
- 或
ALT
+ENTER
以为管理员权限启动
界面配置
挑选列表中喜好的方向选择配置
- 启动时默认窗口
- 新增选项卡默认窗口
- 隐藏不必要的Profile
- 亚克力玻璃效果
- 背景颜色、背景图片、选项卡图标、选项卡名称
- Git状态颜色编码提示符
- PowerLine连体字
开始设置
- 备份setting.json,文件路径参考:
$Username\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\setting.json
- 打开setting.json,
建议使用NotePad++或VSCode等具有错误检查的编辑器,可以使用记事本但不推荐 - 以下代码格式与setting.json完全一致,未省略最外层 ‘{ }’
启动时默认窗口
{ //粘贴对应的UUID,不可缺少双引号、逗号
"defaultProfile": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",
"profiles":
[
{ //UUID
"guid": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",
...
},
...
]
}
新增选项卡默认窗口
{
"profiles":
[ //处于最前面的{...}为新建选项卡默认选项
//将整个{...}移至最前面即可,[...]中最后一个{...}后无逗号
{
"guid":"{574e775e-4f2a-5b96-ac1e-a2962a402336}",
...
},
{
"guid":"{6c94a779-ddf0-4a26-b80c-ccaf9d627a37}",
...
}
]
隐藏不必要的Profile
{
"profiles":
[
{ //将UUID对应的cmd隐藏
"guid":"{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
"hidden":"true", //true为隐藏,false为不隐藏
...
},
...
]
}
亚克力玻璃效果
{
"profiles":
[
{ //为UUID对应的PowerShell 7设置, 其他终端同理
"guid":"{574e775e-4f2a-5b96-ac1e-a2962a402336}",
"acrylicOpacity":0.6, //透明度,设置0~1的浮点数
"useAcrylic":true, //是否开启亚克力效果
...
},
...
]
}
背景颜色、背景、选项卡图标、选项卡名称
{
"profiles":
[
{ //对UUID对应终端生效
"guid":"{574e775e-4f2a-5b96-ac1e-a2962a402336}",
...
"name": "Aliyun_lhg",
"icon" : "E:\\a_WorkPlace\\PhotoShop\\icon\\if_Ubuntu.ico",
//选项卡名称、选项卡图标
"backgroundImage":"C:\\Directory1\\Directory2...",
"backgroundImageOpacity":0.3,
"backgroundImageAlignment":"topleft",
"backgroundImageStretchMode":none
//背景图像 路径用双斜杠
//背景图像浮点数 0~0.1浮点数
//背景图像对齐 默认值"center"
//center left top right bottom
//topLeft topRight bottom
//topLeft topRight bottomLeft bottomRight
//背景图像拉伸模式
//none fill uniform uniformToFill
},
...
]
}
Git状态颜色编码提示符
1. 为PowerShell安装相关插件
- Posh-Git
#将Git状态信息添加到提示,为Git命令、参数、远程分支名添加tab自动补全
Install-Module posh-git -Scope CurrentUser -Force SkipPublisherCheck
- On-My-Posh
#为 PowerShell 提示符提供主题功能
Install-Module on-my-posh -Scope CurrentUser -Force SkipPublisherCheck
- PSReadline
#允许在 PowerShell 中自定义命令行编辑环境
Install-Module -Name PSReadLine -Scope CurrentUser -Force -SkipPublisherCheck
2. 配置PowerShell提示符
$Username\Documents\PowerShell\profile.ps1
若无此文件则自行创建,用记事本打开,将以下三行输入进去
Import-Module posh-git
Import-Module oh-my-posh
Set-Theme Paradox
3. 配置Windows Terminal
打开setting.json
{
"profiles":
[
{
"guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
"fontFace": "Cascadia Code PL",
...
},
...
]
}
功能配置
- 快捷键绑定
{
"keybindings": [
{ "command": "命令名称", "keys": "快捷键" }
]
}
快捷键
使用ctrl
+、 shift
+、 alt
+
命令名称 | 功能 | 默认值&备注 |
---|---|---|
closeWindow | 单元格 | Alt + F4 |
newTab | 新选项卡 | Ctrl + Shift + 1 |
find | 搜索对话框 | Ctrl + Shift + F |
openNewTabDropdown | 打开下拉菜单 | Ctrl + Shift + Space |
toggleFullscreen | 打开设置 | Ctrl + , |
closeTab | 关闭选项卡 | |
duplicateTab | 复制选项卡 | Ctrl + Shift + D |
... | ... | ... |
- 窗格/窗口内分屏
垂直拆分:在焦点窗格右侧新建窗格,默认值Alt
+Shift
+plus
水平拆分:在焦点窗格下方新建窗格,默认值Alt
+Shift
+-
配置方法,使用上文的快捷键绑定方法:
{
"keybindings":[
//将水平拆分绑定为ctrl+shift+-
{ "command": { "action": "splitPane", "split": "horizontal" }, "keys": "ctrl+shift+-" },
//split属性值可取vertical horizontal auto
//分別代表垂直拆分、水平拆分、自动创建最大表面积的窗格
{ "command": { "action": "splitPane", "split": "vertical" }, "keys": "alt+shift+plus" },
{ "command": { "action": "splitPane", "split": "auto" }, "keys": "alt+shift+|" }
]
}
在窗格间进行切换
按住ALT
+箭头
在窗格之间移动焦点
可使用moveFocus命令切换指定窗格
{
"keybindings":[
{ "command": { "action": "moveFocus", "direction": "down" }, "keys": "alt+down" },
{ "command": { "action": "moveFocus", "direction": "left" }, "keys": "alt+left" },
{ "command": { "action": "moveFocus", "direction": "right" }, "keys": "alt+right" },
{ "command": { "action": "moveFocus", "direction": "up" }, "keys": "alt+up" }
]
调整窗格大小
{
"keybindings":[
{ "command": { "action": "resizePane", "direction": "down" }, "keys": "alt+shift+down" },
{ "command": { "action": "resizePane", "direction": "left" }, "keys": "alt+shift+left" },
{ "command": { "action": "resizePane", "direction": "right" }, "keys": "alt+shift+right" },
{ "command": { "action": "resizePane", "direction": "up" }, "keys": "alt+shift+up" }
]
}
- SSH快速登陆
经常使用ssh user@machine
命令的用户可以利用WT内置的SSH客户端创建档案
{
"profiles":
[
{ // Connect to Aliyun Server with SSH
"guid": "{6c94a779-ddf0-4a26-b80c-ccaf9d627a37}",
"commandline": "powershell.exe ssh lhg@47.192.xxx.xx",
...
}
]
}
启动终端后会直接提示输入密码:
指定ssh会话起始目录
{
"profiles":
[
{ // Connect to Aliyun Server with SSH
"guid": "{6c94a779-ddf0-4a26-b80c-ccaf9d627a37}",
"commandline": "ssh -t lhg@47.192.xxx.xx \"cd /data/bob && exec bash -l\""
...
}
]
}
-t
标志强制执行伪终端分配。可用于在远程计算机上执行任意基于屏幕的程序。
小结
工欲善其事,必先利其器,有了丰神异彩的Windows Terminal,终于可以不用忍受那个无聊的黑框框了。如果在读完本文之后,你是否会有革故鼎新的冲动呢?希望这篇文章能帮助你你体验到 Windows Terminal的兼顾颜值和效率的优势,提升在 Windows 上的工作、开发效率。感谢阅读。
部分图片来源于网络