Windows Terminal完整指南

杭州程式設計師小張發表於2020-11-11

在本文中,我們將探討Windows Terminal,它是WSL2的理想配套。它速度快、可配置、外觀漂亮,並且提供了Windows和Linux開發的所有優點。

Windows已經完全接受了Linux,而WSL2使它成為一種無縫的樂趣。

你可以通過以下方式訪問發行版的終端:

  1. 單擊其開始選單圖示
  2. 在Powershell或命令提示符下輸入 wslbash
  3. 通過啟動 %windir%\system32\bash.exe ~ 的配置檔案使用第三方終端選項(例如Cmder,ConEmu和Hyper)
  4. 在VS Code中設定Linux為預設shell,方法是按 Ctrl + Shift + P,然後輸入/選擇終端 Terminal: Select Default Shell,然後選擇WSL Bash

Windows Terminal提供了更多的選擇,但你不會後悔安裝它。新的應用功能。

  • 支援WSL2,SSH,Powershell,cmd和其他命令列
  • 多個選項卡和拆分窗格
  • 搜尋框
  • 自定義鍵繫結
  • GPU加速文字渲染
  • 美觀的新字型Cascadia Code
  • 資源使用率低(每個選項卡通常10MB)
  • 自動更新(如果使用Microsoft Store)
  • 好的文件
  • 它是開源的!

目錄

如何安裝Windows Terminal

安裝Windows Terminal的最簡單方法是通過Microsoft Store:

ms-windows-store://pdp/?ProductId=9n0dx20hk701

如果此連結失敗,請嘗試在瀏覽器中開啟Microsoft Store,或從Windows 開始選單中啟動Microsoft Store應用程式並搜尋“Terminal”。

注意:注意不要選擇早期的“ Windows Terminal Preview”應用程式。

點選 Get 並等待幾秒鐘以完成安裝。

如果你無權訪問商店,則可以從GitHub下載最新版本

Windows Terminal 應用圖示現在可在 Windows 開始選單中使用。為方便訪問,右鍵單擊該圖示並選擇“鎖定到開始”或“更多”,然後選擇“鎖定到工作列”。

Windows Terminal入門

首次執行時,Windows Terminal以Powershell作為預設配置檔案啟動。下拉選單可用於啟動其他選項卡並訪問設定:

終端會自動為你安裝的所有WSL發行版和Windows shell生成配置檔案,儘管你可以在全域性設定中禁用生成。

管理標籤和窗格

通過單擊 + 圖示或 Ctrl + Shift + T 開啟預設配置檔案的新標籤。要開啟其他個人資料的標籤,請從下拉選單中選擇該標籤,或按 Ctrl + Shift + N ,其中N是個人資料的編號。

Alt + Shift + D 複製並拆分窗格。每次使用時,活動窗格都會沿最長軸分成兩部分:

強制建立:

  • 垂直窗格中,按 Alt + Shift + +
  • 水平窗格,按 Alt + Shift + -

要在新窗格中開啟另一個配置檔案,請在從下拉選單中選擇時按住 Alt 鍵。

按住 Alt 鍵,然後使用游標鍵在鍵盤上的活動窗格之間切換。可以通過按住 Alt + Shift 並使用游標鍵相應地調整大小來調整窗格的大小。

可以通過雙擊文字來重新命名選項卡,你還可以通過右鍵單擊標籤並選擇選單選項來更改名稱或顏色:

這隻會影響當前標籤頁;它不會永久更改個人資料。

要關閉活動窗格或選項卡,按 Alt + Shift + W 或輸入終端的標準退出命令(通常是 exit)。

字型大小

可以使用 Ctrl + +Ctrl + - 來調整活動終端的文字大小。或者,按住 Ctrl 並滾動滑鼠滾輪。

滾動

使用滾動條瀏覽終端輸出。或者,按住 Ctrl 鍵,按游標向上、游標向下、Page UpPage Down鍵,使用鍵盤導航。

搜尋

Ctrl + Shift + F 開啟搜尋框:

輸入任何術語,然後使用向上和向下圖示搜尋終端輸出。單擊 Aa 圖示可啟用和停用精確大小寫匹配。

複製貼上

預設情況下,複製和貼上分別繫結到 Ctrl + Shift + CCtrl + Shift + V,儘管 Ctrl + CCtrl + V 也可以。

注意:請警惕 Ctrl + C 可以終止Linux應用程式,因此建議使用Shift。

全域性設定中提供了一個自動選擇時複製選項,你還可以通過右鍵單擊滑鼠來貼上當前剪貼簿專案。

配置

可從下拉選單或 Ctrl + ,(逗號)訪問設定。該配置在單個 settings.json 檔案中定義,因此可能會提示你選擇文字編輯器。VS Code是一個不錯的選擇,但是如果你希望在不使用顏色編碼和語法檢查的情況下進行編輯,則記事本就可以了。

settings.json 控制元件:

該檔案使用以下格式:

// This file was initially generated by Windows Terminal
{

  // general settings, e.g.
  "initialRows": 40,

  // profile settings
  "profiles":
  {

    "defaults":
    {
      // settings that apply to all profiles
    }
    "list":
    [
      // list of individual profiles, e.g.
      {
        "guid": "{81d1dceb-c123-5678-90a1-123abc456def}",
        "name": "Windows PowerShell",
        "commandline": "powershell.exe"
      },
      {
        "guid": "{91d1dceb-c123-5678-90a1-123abc456def}",
        "name": "Ubuntu",
        "source": "Windows.Terminal.Wsl"
      }
    ]

  }

  // custom color schemes, e.g.
  "schemes": [
    {
      "name": "My new theme",
      "cursorColor": "#FFFFFF",
      "selectionBackground": "#FFFFFF",
      "background" : "#0C0C0C",
      "foreground" : "#CCCCCC"
    }
  ],

  // custom key bindings, e.g.
  "keybindings:
  [
    { "command": "find", "keys": "ctrl+shift+f" }
  ]

}

預設值在 defaults.json 中定義。單擊下拉選單中的 Settings 時,按住 Alt 可以將其開啟。

警告:請勿更改預設檔案!使用它可以檢視預設設定,並在必要時在settings.json中新增或更改設定。

全域性配置

以下全域性設定是最有用的,儘管Windows終端文件中記錄了更多的全域性設定。

defaultProfile 定義啟動Windows Terminal時用作預設配置檔案的GUID。

copyOnSelect 設定為 true 可將選定的文字自動複製到剪貼簿,而無需按 Ctrl + Shift +C

copyFormatting 設定為 false 即可僅複製純文字而無需任何樣式。 (我希望這是所有應用程式的預設設定!)

initialColumnsinitialRows 設定為水平和垂直尺寸的字元數。

可以將 tabWidthMode 設定為:

  1. equal:每個選項卡的寬度相同(預設值)
  2. titleLength:每個標籤都設定為其標題的寬度,或者
  3. compact:非活動選項卡會縮小到其圖示的寬度。

disabledProfileSources 設定一個陣列,以防止自動生成配置檔案。例如:

"disabledProfileSources": [
    "Windows.Terminal.Wsl",
    "Windows.Terminal.Azure",
    "Windows.Terminal.PowershellCore"
  ],

這將禁用所有生成的配置檔案,刪除你要保留的任何一個。

Profile 個人資料設定

通過在 profilelist 陣列中建立一個物件組來定義新的配置檔案。一個WSL2 Ubuntu的例子。

{
  "guid": "{91d1dceb-c123-5678-90a1-123abc456def}",
  "name": "Ubuntu",
  "source": "Windows.Terminal.Wsl",
  "startingDirectory": "//wsl$/Ubuntu/home/username/",
  "colorScheme": "Tango Dark",
  "useAcrylic": true,
  "acrylicOpacity": 0.75,
  "hidden": false
},

每個配置檔案均使用以下設定進行定義:

設定描述
guid唯一識別符號(必填)。對於新的配置檔案,可以在guidgen.com上線上生成GUID。
source配置檔案生成器。僅在自動新增了配置檔案且不得對其進行編輯時使用。
commandline假定未設定“source”的情況下執行的可執行檔案。例如,這可能是SSH命令,例如“ ssh yourname@domain.com”
startingDirectoryShell開始目錄。對於WSL發行版,最好將其設定為“ //wsl$/Ubuntu/home/username/”,其中username是安裝期間建立的使用者
name下拉選單中顯示的個人資料名稱
tabTitle標籤標題中顯示的名稱
suppressApplicationTitle設定為true以強制bash中的“ tabTitle”或“ name”
icon下拉選單和標籤中顯示的圖示的完整路徑,例如“ C:/images/tux.png”。 24位PNG是最好的選擇;不幸的是,不支援SVG
hidden如果設定為true,則配置檔案不會顯示在下拉選單中
fontFace使用特定的字型
fontSize使用特定的字型磅值整數
fontWeight使用特定的字型粗細。這可以是OpenType整數,也可以是關鍵字:"normal", "thin", "extra-light", "light", "semi-light", "medium", "semi-bold", "bold", "extra-bold", "black", "extra-black"
padding在視窗邊緣的文字週圍填充。可以設定一個,兩個或四個逗號分隔的值,例如“ 1、2、3、4”分別設定左,上,右和下
antialiasingMode抗鋸齒方法。設定為 “灰度”(預設)、"cleartype "或 “aliased”。
cursorShape遊標型別。設定為“bar”(預設),“vintage”,“underscore”,“ filledBox”或“ emptyBox”
cursorHeight“vintage”游標的高度,該高度定義為25到100之間的整數
cursorColor游標顏色,定義為“ #rgb”或“ #rrggbb”

特定於主題的設定包括:

設定描述
colorScheme在defaults.json或settings.json中的“方案”列表中定義的配色方案的名稱(請參見下文)
useAcrylic設定為true以使用毛玻璃背景效果
acrylicOpacityacrylic不透明度從0(完全透明)到1(完全不透明)。
backgroundImage背景圖片的完整路徑,例如“ C:/images/background.png”
backgroundImageOpacity背景影像的不透明度從0(完全透明)到1(完全不透明)

最後,在配置檔案中新增 ”experimental.retroTerminalEffect”:true,以實現復古的CRT效果!…

配色方案設定

可以將每個配置檔案的 ”colorScheme” 設定為 defaults.json 中包含的任何配色方案的名稱。例如:

“Campbell"

“Campbell Powershell”

“One Half Dark”

“One Half Light”

“Tango Dark”

“Tango Light”

“Vintage”

建立自己的配色方案

你可以在settings.json的“方案”陣列中定義自己的方案物件。每種顏色均以十六進位制值定義。例如:

"schemes": [
  {
    "name": "My New Theme",
    "foreground": "#EEEEEE",
    "background": "#111111",
    "cursorColor": "#FFFFFF",
    "black": "#000000",
    "red": "#CC0000",
    "green": "#4E9A06",
    "yellow": "#C4A000",
    "blue": "#3465A4",
    "purple": "#75507B",
    "cyan": "#06989A",
    "white": "#EEEEEE",
    "brightBlack": "#555753",
    "brightRed": "#EF2929",
    "brightGreen": "#8AE234",
    "brightYellow": "#FCE94F",
    "brightBlue": "#729FCF",
    "brightPurple": "#AD7FA8",
    "brightCyan": "#34E2E2",
    "brightWhite": "#FFFFFF"
  }
],

然後,可以通過在配置檔案的 ”colorScheme” 設定中新增其 "name" 來使用該方案。例如:

"colorScheme": "My New Theme"

鍵盤繫結設定

settings.json 中的 ”keybindings” 陣列會覆蓋或補充 defaults.json 中設定的預設鍵繫結。每個鍵繫結都定義為具有 “command”"keys"組合的物件。例如:

// Ctrl + Shift + F to open the search box
{ "command": "find", "keys": "ctrl+shift+f" },

在某些情況下,“command” 可以是具有一個或多個引數的應用程式 "action" 。例如:

// Ctrl + Shift + 1 to open the first profile in a new tab
{
  "command": { "action": "newTab", "index": 0 },
  "keys": "ctrl+shift+1"
},

"keys" 值接受修飾符 ctrl +shift +alt +,後跟:

typekeys
功能鍵f1-f24
字母數字鍵a-z, 0-9
符號鍵-,=,[,], \,;,,,,.,/
游標鍵down, left, right, up,pagedown,pageup,pgdn,pgup,end,home,plus
動作鍵tab, enter, esc, escape, space, backspace, delete, insert
數字鍵盤numpad_0-numpad_9, numpad0-numpad9, numpad_add, numpad_plus,
numpad_decimal, numpad_period, numpad_divide,
numpad_minus, numpad_subtract, numpad_multiply

例如,如果你想使用 Ctrl + F 開啟搜尋框,則可以在 settings.json 中的 ”keybindings” 陣列中新增一行:tab

"keybindings":
[
  { "command": "find", "keys": "ctrl+f" }
]

搜尋框也將用 Ctrl + Shift + F 開啟,因為該設定是在 defaults.json 中定義的——除非你將組合鍵分配給另一個命令。

命令列選項

可以通過執行 wt.exe 從快捷方式或任何Windows或Linux終端啟動Windows終端。支援以下選項:

選項描述
—help,-h,-?, /?顯示幫助
—maximized,-M啟動最大值
—fullscreen,-F啟動全屏

你還可以傳遞由分號分隔的命令列表。命令用於定義新的選項卡和窗格以及其他控制引數:

命令引數
new-tab—profile or -p, —startingDirectory or -d, commandline, —title開啟一個新標籤頁
split-pane--horizontal or -H,—vertical or -V, —profile or -p, —startingDirectory or -d, commandline, —title開啟一個新窗格
focus-tab—target or -t聚焦標籤

例子

以下示例必須從標準cmd命令列或快捷方式執行。

使用 UbuntuWindows Powershell 選項卡開啟Windows終端:

wt -p "Ubuntu" ; new-tab -p "Windows PowerShell"

在單獨的窗格中使用 UbuntuWindows Powershell 和命令提示符配置檔案開啟Windows終端:

wt -p "Ubuntu" ; split-pane -V -p "Windows PowerShell" ; split-pane -H -p "Command Prompt"

Windows Terminal文件中提供了用於從Linux Shell或Powershell啟動Windows Terminal的更多示例。

總結

希望你喜歡這篇Windows終端的介紹。正如所說,它是WSL2的理想配套。它速度快、可配置、外觀漂亮,並且提供了Windows和Linux開發的所有優點。


原文:https://www.sitepoint.com/windows-terminal/
作者:Craig Buckler

相關文章