成為 Windows Terminal 的用家

Windows Terminal Tutorial

微軟在今年五月的 Build 2019 上發佈了針對 Windows 10 的 Windows Terminal,現在處於測試中的 0.7 版本。官方放出的視頻是最近已經把人餵得飽飽的 Fluent Design 風格。Fluent Design 不知道何時能夠兌現。它繼承了微軟以前的摩登設計語言,那陶瓷般的乾淨、通透的色彩層次以及多維度的光影效果,讓厭倦過分甜膩的當下的人們瞥見一絲未來的味道。但是 Fluent Design 一直在讓我們等待。

1. 安裝

回到正題。Windows Terminal 在商店裡面有(哦,Windows 10 的版本號應該高於 18362),亦可以通過 Chocolatey 安裝:

choco install microsoft-windows-terminal

安裝完成後回出現在開始菜單裡面,控制檯命令是 wt

沒有不厭倦 cmd 的人吧?雖然微軟從 Windows XP 時代到 10 一直有更新。但是其易用性卻依舊不能夠讓人滿足。Windows Terminal 在視覺上似乎填充了 cmd 的痛點:多選項卡、自定義的主題、對 Linux 子系統的柔滑支援,當然還有最近發佈的、帶有連字的等寬字體 Cascadia Code

windows-terminal-ui
Windows Terminal 打開 Ubuntu 子系統的界面

2. 偏好設置

Ctrl + , 打開偏好設置是在模仿誰嗎?在這個版本下會用默認的軟體打開一個叫 profiles.json 的配置文件。wt 通過這個文件實時讀取配置,如果出現語義錯誤,它會產生提示並回退到之前的配置。

syntax-error
提示語義錯誤

這個 JSON 文件的結構不難弄懂,您可以參考這裡defaultProfile 填入默認配置的 guid。而 guidprofiles 裡面定義,每一條目對應有一個類型的命令行(cmd、PowerShell 和 Azure Cloud Shell,如果安裝了 Linux 子系統的話,也會一併列出)。不想在新建選項卡看到某一個的話,請勿直接刪除條目,而是將 hidden 設置為 true,否則它將自動添加回來。

powershell-and-new-tab
開啟 PowerShell 和新建選項卡

2.1 profiles

對於某一個條目,我們可以指定它的毛玻璃程度(useAcrylicacrylicOpacity,果真 Fluent Design),為了視覺效果必須加入的 padding(有 CSS 的味道),配色方案(colorScheme),字體(fontFace)什麼的——是時候走出 Consolas 的沙發,來到 Cascadia 的室外?

{
    "guid": "{...}",
    "hidden": false,
    "name": "Ubuntu-18.04",
    "source": "Windows.Terminal.Wsl",
    "useAcrylic": true,
    "acrylicOpacity": 0.9,
    "padding": "8",
    "colorScheme": "Cobalt2",
    "fontFace": "Cascadia Code",
    "cursorColor": "#F0CC09"
}
profiles
編輯配置文件

2.2 schemes

wt 已裝入的有五個配色方案:Campbell(默認)、One Half DarkOne Half LightSolarized DarkSolarized Light。自定義的話,需要在 schemes 裡面加入,像這樣:

"schemes": 
[
    {
        "background": "#122738",
        "black": "#000000",
        "blue": "#5555FF",
        "brightBlack": "#38DE21",
        "brightBlue": "#00BBBB",
        "brightCyan": "#555555",
        "brightGreen": "#1460D2",
        "brightPurple": "#BBBBBB",
        "brightRed": "#FFE50A",
        "brightWhite": "#F40E17",
        "brightYellow": "#FF005D",
        "cyan": "#6AE3FA",
        "foreground": "#FFFFFF",
        "green": "#1DD03B",
        "name": "Cobalt2",
        "purple": "#FF55FF",
        "red": "#FF0000",
        "selectionBackground": "#0050A4",
        "white": "#FFFFFF",
        "yellow": "#EDC809"
    }
]

我一直以來都鍾愛 Cobalt 的配色,於是從 Cobalt2 做了主題,如果 @wesbos 不讓的話我就刪掉吧。對了,在 schemes 裡面不存在 cursorColor 一項,需要在 profiles 裡面添加。

2.3 keybindings

常用涉及到的部分有選項卡(closeTabnewTab)、拷貝粘上(copypaste)什麼的。

"keybindings": [
    {
        "command": "closeTab",
        "keys": [ "ctrl+w" ]
    },
    {
        "command": "newTab",
        "keys": [ "ctrl+t" ]
    },
    {
        "command": "copy",
        "keys": [ "ctrl+c" ]
    },
    {
        "command": "paste",
        "keys": [ "ctrl+v" ]
    },
    {
        "command": "moveFocusLeft",
        "keys": [ "ctrl+b" ]
    },
    {
        "command": "moveFocusRight",
        "keys": [ "ctrl+f" ]
    },
    {
        "command": "moveFocusUp",
        "keys": [ "ctrl+p" ]
    },
    {
        "command": "moveFocusDown",
        "keys": [ "ctrl+n" ]
    }
]

差不多惹。以後想到什麼好玩的東西再寫給大家。

Some rights reserved
Except where otherwise noted, content on this page is licensed under a Creative Commons Attribution-ShareAlike 4.0 International license