notebook

都内でWEB系エンジニアやってます。

Windows Terminalを導入する

WSL2と一緒に入れようと思っていたものの別に一緒じゃなくても良いなということでとりあえず導入してみた

  • 執筆時点のバージョン

    • 1.2.2022.0(preview)
  • 筆者の使用用途

    • 主にVagrantでVMを立ててその中で開発
    • WSLでちょっとしたリポジトリの開発

microsoft/terminal: The new Windows Terminal and the original Windows console host, all in the same place!

やったこととか感想とかをつらつら書いていく

インストール

Storeのみからの入手しかできないと思っていたがGitHubのreleasesから取得できる

(この場合バージョン更新を自動ではしてくれないらしい)

DLしてきてインストールするだけ

設定

タブなどが表示されている箇所の一番右側をクリックしプルダウンから設定を選ぶとテキストエディタでsettings.jsonが開かれる

GUIでの設定画面はない(2.0で入る予定らしい)

いくつか設定してみたので残しておく

ドキュメント

Windows ターミナルの概要 | Microsoft Docs

docs.microsoft.com

terminal/SettingsSchema.md at master · microsoft/terminal

github.com

Git bashを追加する

  • 参考

Windows Terminal で Git Bash を表示する - Qiita

qiita.com

  • profiles.list
{
    "guid": "{a46fc42c-6e20-426c-bfc0-f06d6f3cd1e7}",
    "hidden": false,
    "name": "Git Bash",
    "commandline" : "C:\\Program Files\\Git\\bin\\bash.exe",
    "icon" : "C:\\Program Files\\Git\\mingw64\\share\\git\\git-for-windows.ico",
    "startingDirectory" : "%USERPROFILE%"
}

Vagrantとか起動するときにはだいたいGit Bashを使っているので必要

シェルごとの設定をprofiles.listの中に書いていくことで追加できる

iconも指定できるので自分好みに設定できる

SSH接続のprofile

Windows ターミナル SSH | Microsoft Docs

SSHでの接続先についてもprofileに登録できる

事前に.ssh/configや鍵の追加を済ませておけば簡単に追加できる

{
    "name": "local3096",
    "commandline": "C:\\Windows\\System32\\OpenSSH\\ssh.exe local3096"
}

自分は開発用のVMへのssh設定を済まして上記でアクセスできるようにしている

最近はあまりないが本番だったりよく接続するサーバは登録しておいてもよいかも

defaults

シェルごとの設定とは別に全シェルで共通の設定をprofiles.defaultsで行える

とりあえず見た目を整える

        "defaults":
        {
            // Put settings here that you want to apply to all profiles.
            "background": "#2b3e50",
            "backgroundImageOpacity": 0.4,
            "colorScheme": "One Half Dark",
            "useAcrylic": true,
            "acrylicOpacity" : 0.8,
            "cursorColor": "#fc6ffa",
            "cursorShape": "filledBox",
            "fontSize": 11,
            "fontWeight": "bold",
            "fontFace": "Ricty for Powerline"
        },

フォントは今まで使っているRicty for Powerline

Powerlineがとてもいい感じに表示されたので満足

f:id:swfz:20200821062225p:plain

profileの設定例

サードパーティツールのprofile設定例が載っていたので参考にすると良さそう

terminal/ThirdPartyToolProfiles.md at master · microsoft/terminal

github.com

キーバインド

使い方次第だが基本的にタブの中ではtmuxを使う予定なのであまり使わなそう

デフォルトだとctrl+vがpasteになっていてvimのvisualモードと衝突するのでその箇所のみ変えた

"keybindings": [
-    { "command": "paste", "keys": "ctrl+v" },
+    { "command": "paste", "keys": "ctrl+shift+v" },
]

ctrl+cでコピーできるの良い

これも被りそうだけど今のところ困っていないのでこのまま

さらに、singleLineというオプションがありtrueにするとTerminalでコピーした複数行のテキストがペースト時1行になる

調査とかで1行に収まらないテキストが出てきたときや分量多めのjsonをコピーして別の場所に貼り付けるときなどに役立つ

puttyだと中途半端な場所で改行されてしまっていたので不便だった

個人的にかなり嬉しい機能

     { "command": {"action": "copy", "singleLine": false}, "keys": "ctrl+c" },
+    { "command": {"action": "copy", "singleLine": true }, "keys": "ctrl+shift+c" },

ということで通常のコピーと合わせて設定を追加した

るんるんでしばらく使っていたが、マルチバイト文字が出力されたりして画面端にスペースが入り込んでしまうとそのスペースもコピーされてしまうっぽい…

マルチバイトがない場合は問題ないが気を付けないと調査とかではまりそう

背景画像

profileごと、共通どちらでもbackgroundImageで設定できる

画像のパスやURLでも指定できるので凝りだすと無限に時間を食う

常用しそうなショートカットや機能

shift押しながらマウス左クリックで選択範囲が拡大できる

スクロールとかしても選択範囲が維持できるので便利

そういうケースがたまにあったりするので覚えておく

コマンドパレット

VS Codeなどのようにコマンドパレットが1.2.2-Previewからは使える

ショートカットキーも見れるので良い

f:id:swfz:20200821062231p:plain

タブの色変更はコマンドパレットからなら行うことができた

タブの切替

Ctrl+TabCtrl+Shift+Tabで前後のタブ移動ができる

iTerm2と同様のキーバインドで操作できるのは個人的に助かる

おわり

今までターミナルが別々だったものをまとめることができた

  • puttyでVMへSSHして作業
  • WSLのコンソールを開いて作業
  • Git bashを開いて作業

大分いい感じ

目下settings.jsonをどう管理しようかなというのが悩みどころ

2.0のロードマップも発表されたようなので期待して待っていようと思います

Windows Terminal 2.0ロードマップ発表、次の新機能はコレ | マイナビニュース