Windows TerminalでWindowsのコマンド操作をもっと快適に(2021年版)

# はじめに

みなさんは2020年5月にメジャーリリースされた**Windows Terminal**は利用しておりますでしょうか？
コマンドプロンプトやPowerShellコンソールなどのコンソールをタブ形式でまとめて利用できるとても便利なツールです。
今回はWindows Terminalの「紹介」と「もっと便利にする小ネタ」を記載します。

ソースコード(GitHub) ： https://github.com/microsoft/terminal
執筆時点のバージョン　：　1.4.3243.0

# 1. Windows Terminalの導入

今回はWindows Storeからのインストールについて記載します。
以下の手順で導入する場合は、公式の[GitHub](https://github.com/microsoft/terminal)を参照ください。

- [winget](https://github.com/microsoft/winget-cli)
- [Chocolatey](https://chocolatey.org/) (:exclamation:unofficial)
- [Scoop](https://scoop.sh/) (:exclamation: unofficial)

## 1.1 Windows Store -> Windows Terminal -> 入手

**検索窓から「Windows terminal」と入力**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/122958/894994ae-e968-8721-f728-3b1ad9721d1d.png)

**「入手」ボタンをクリック**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/122958/d59e36c8-8668-53ec-2ea8-579d8d90290b.png)

**Windows Storeでインストールメリット**

1. Windows Store管理となっているため、アップデートが簡単である
2. Storeでインストールしたアプリは**同様のアカウントにてログインしている他のマシンにもインストールが可能**

特に[2.]の機能は嬉しいですね。
![terminal_002.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/122958/50ab2c6f-b486-5593-5a37-1fea0340067e.gif)

## 3. Windows Terminalのカスタマイズと便利な利用方法

そのままでも便利なWindows Terminalですがカスタマイズでさらに便利にします。

**【設定ファイルを開く】**
Windowsターミナルを起動し、「設定」をクリックします。

![terminal_001.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/122958/58ea120d-84a4-8756-40cf-f87fdaeabb0a.gif)

以下の通り、設定ファイル(json)を表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/122958/c52fef23-66a0-09ae-a912-8942aa109dff.png)

:star: **直接設定ファイルを開く場合**
以下のディレクトリに保存されております。

```
%UserProfile%\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json
```

### 3.1. Explerorアドレスバーからカレントディレクトを開く

エクスプローラのアドレスバーはパスの通っているアプリケーションを呼び出す機能が搭載されております。
この機能を利用して、ディレクトリ直下でWindows Terminalを開けるように設定します。

#### 3.1.1. 開始ディレクトリの設定
デフォルトでは`C:\User\[ユーザ名]`をカレントディレクトリで開くようにします。

```json-doc
  "profiles": {
    "defaults": {
      // 追加
      "startingDirectory": "."
    },
```
#### 3.1.2. アドレスバーから起動する

アドレスバー -> `wt` と 入力

![terminal_003.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/122958/c9e4318f-61c3-472a-b4db-0e2f51cc879c.gif)

**余談**

おなじみコマンドプロンプトやPowerShellについても同様の手順で開くことができます。

|アプリケーション名|コマンド|
|----------------|--------|
|コマンドプロンプト | cmd   |
|PowerShell     | powershell |


### 3.2 右クリックでWindows Terminalで開く

(設定不要）
ディレクトリを選択 -> Shift + 右クリック で「Open in Windows Terminal」が表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/122958/72dc7ece-122d-7333-c59d-bce152a3c33a.png)

※ディレクトリ未指定の状態でコンテキストメニューに表示させる場合は、レジストリをいじる必要があるため、本記事では紹介しません。

### 3.3. Git Bashを追加

デフォルトではGit BashはWindows Terminalに表示されておりません。以下の手順をGit Bashを使えるようにします

#### 3.3.1. Guidの払い出し

PowerShellコンソールから以下のコマンドを実行

```powershell
New-Guid
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/122958/44df6419-cf0f-a482-1b10-246418265a38.png)

#### 3.3.2. Git Bash設定を追加
settings.json に以下の設定を追加します。（※Git Bashのインストール先によってパスを変更してください）

```json-doc
{
  // Git Bash
  "guid": "{e28fb01d-291f-4adb-b6a5-3570efe183c0}",
  "hidden": false,
  "name": "Git Bash",
  "commandline": "%PROGRAMFILES%/git/usr/bin/bash.exe -i -l",
  "icon": "%PROGRAMFILES%\\Git\\mingw64\\share\\git\\git-for-windows.ico"
},
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/122958/67d5f69c-d402-7b81-4e15-dd3a4a34cf59.png)

### 3.4. デフォルトのターミナルを変更する
インストール時の"PowerShell"がデフォルトで起動するようになっております。。
ここではPowerShellから別のターミナルをデフォルトにする設定します。

#### 3.4.1. defaultProfileのGuidを変更する

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/122958/5c90e5e6-db6f-e7be-5186-798721747859.png)

### 3.5. Powerlineを導入

**完成イメージ**
![image.png](https://docs.microsoft.com/ja-jp/windows/terminal/images/powerline-powershell.png)

#### 3.5.1 フォントのダウンロートと設定方法

[Cascadia Code](https://github.com/microsoft/cascadia-code)とは Microsoftが提供する新しい等幅フォントでWindows ターミナルと共に開発されたフォントです。
今回は**Powerline**も使いたいため、デフォルトのCascadia Code Mono から Cascadia Code Mono PLを設定します。

Cascadia Codeフォントの詳細については [Cascadia Codeフォントに新バリエーション登場](https://news.mynavi.jp/itsearch/article/hardware/4759) を参照ください。

**[こちら](https://github.com/microsoft/cascadia-code/releases)からzipファイルをダウンロード**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/122958/132dd6f4-c4ba-835b-83c0-1c673fdf44bd.png)

**PLとついたフォントをクリック**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/122958/feb6ec56-e9f0-c46b-960a-41620a42561b.png)

**インストール**
※以下はCascadia Code PLの画像。CascadiaMonoPL.ttfをクリックしインストールしてください
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/122958/72491916-3baf-dc39-c0c0-1c173110312a.png)

```json-doc
 "profiles": {
    "defaults": {
      // Put settings here that you want to apply to all profiles.
      // 追加
      "fontFace": "Cascadia Mono PL"
     },
```
#### (PowerShell) Posh-Git と Oh-My-Poshのインストール

※すでにGit Bash for Windowsがインストールされている状態で実行してください。
PowerShellにて以下のコマンドを実行します。

```powershell
# モジュールのインストール
Install-Module posh-git -Scope CurrentUser
Install-Module oh-my-posh -Scope CurrentUser
```

**PowerShell用のプロファイルの編集**

`notepad $PROFILE`でプロファイルを開き、PowerShellに打ち込んで以下を追記します。

```powershell
# モジュールの設定
Import-Module posh-git
Import-Module oh-my-posh
# テーマの設定(※)
Set-Theme Paradox
```

※各テーマについては [oh-my-posh#themes](https://github.com/JanDeDobbeleer/oh-my-posh#themes)をご覧ください。

#### 出力結果

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/122958/bb7f8829-f08e-8f88-996b-fa1a21448029.png)

### (WSL Ubuntu) Golangのインストール

```bash
sudo apt install golang-go
go get -u github.com/justjanne/powerline-go
```

#### `.bashrc`に以下を追加する

```bash
GOPATH=$HOME/go
function _update_ps1() {
    PS1="$($GOPATH/bin/powerline-go -error $?)"
}
if [ "$TERM" != "linux" ] && [ -f "$GOPATH/bin/powerline-go" ]; then
    PROMPT_COMMAND="_update_ps1; $PROMPT_COMMAND"
fi
```

#### 出力結果
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/122958/380d7e21-75f7-1e03-affd-b2059e949544.png)

### 3.6. 外観変更

以下にWindows Terminal外観に関わる設定の一部を明記します。
尚、本設定は各アプリケーションごとに設定可能です。

#### 3.6.1 透過設定

```
  "profiles": {
    "defaults": {
      "useAcrylic": true,
      "acrylicOpacity": 0.7 //(0-1で透過度を指定できる)
    },
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/122958/a35419dc-9e7f-40c5-8276-d456457776f5.png)

#### 3.6.2 テーマ変更

```json-doc
  "profiles": {
    "defaults": {
      // 好きなプリセットを選択する ( https://docs.microsoft.com/ja-jp/windows/terminal/customize-settings/color-schemes)
      "colorScheme":"One Half Dark",
    },
```

細かく配色をカスタマイズしたい方は[カスタム ターミナルギャラリー](https://docs.microsoft.com/ja-jp/windows/terminal/custom-terminal-gallery/custom-schemes)を参照ください。

### 3.7. 番外編：WSLのデフォルトパスを変更する

[3.1.1. 開始ディレクトリの設定]の応用です。
WSLでLinuxを開始するときのホームディレクトリを変更します

```json-doc

{
  "guid": "{07b52e3e-de2c-5db4-bd2d-ba144ed6c273}",
  "hidden": false,
  "name": "Ubuntu-20.04",
  "source": "Windows.Terminal.Wsl",
  //ここを追加
  "startingDirectory": "//wsl$/Ubuntu-20.04/home/[ユーザ名]"
}
```

# 参考

[How to open the Windows Terminal (Preview) in File Explorer](https://superuser.com/questions/1481203/how-to-open-the-windows-terminal-preview-in-file-explorer)

[Gist trajano/profiles.json](https://gist.github.com/trajano/24f4edccd9a997fad8b4de29ea252cc8)

[Tutorial: Set up Powerline in Windows Terminal](https://docs.microsoft.com/en-us/windows/terminal/tutorials/powerline-setup)

# おわりに

いかがだったでしょうか？
これまで[cmder](https://cmder.net/)や[ConEmu](https://conemu.github.io/en/TableOfContents.html) を利用されていた方はこの機会に是非、Windows Terminalをお試しください。

(ぼやき：個人的には…管理者モードのタブを追加したかったのですが、セキュリティリスクが高すぎるとのことで採用されていないみたいですね。「[issues #961](https://github.com/microsoft/terminal/issues/691)」 そこだけが残念です。）

次のバージョンでは**設定画面**が追加され、簡単に設定ファイルを変更することができるようになります。

最後まで読んでいただき、ありがとうございました。