Windows Terminal でも Cmder を使う方法


Microsoft 製ターミナルの Windows Terminal、めでたく Ver 1.0 を迎えましたね。

Microsoft、「Windows Terminal 1.0」を発表 ~タブUIの新しいターミナルアプリ - 窓の杜

プレビュー版の時はあまり使っていなかったのですが、今回使ってみたところ中々使い勝手がよく、今まで愛用していた Cmder から移行することを決めました。

やっぱりコマンドプロンプトは使いづらい

私の場合、環境変数など諸々の事情もあり、コマンドプロンプトや PowerShell を使うことも少なくありません。
そんなとき、私はコマンドプロンプトの使い勝手を Bash に寄せた Cmder というターミナルを使っていました。

しかし、Windows Terminal では初期設定でコマンドプロンプト、PowerShell、WSL (Windows Subsystem for Linux) しか起動できません。

つまり、前述のような事情がある場合、Windows Terminal では素の状態のコマンドプロンプト (あるいは PowerShell) を使うことになってしまいます。
……辛いですよね?

Cmder を Windows Terminal 内で使おう!

Cmder は、複数のツール (Conemu, Clink...) を組み合わせて開発されたターミナルアプリです。
標準では Conemu というターミナルアプリ上で Cmder のシェルが動作しているので、このターミナルを Windows Terminal に差し替える形を取ることで、動作させることが出来ます。

こんな風に。

Windows Terminal に Cmder 利用のための設定をする

guid を発行

設定に使うための guid というユニークな ID を発行します。

PowerShell を管理者権限で起動し、以下のコマンドを実行します。
発行された guid は後の設定に利用するので控えておきましょう。

[guid]::NewGuid()

こちらを実行すると、下記のような結果が得られます。
下記の場合は 0ec43d47-f761-48f3-a99b-a8a73927f159 が guid ですね。

PS C:\Windows\System32> [guid]::NewGuid()

Guid
----
0ec43d47-f761-48f3-a99b-a8a73927f159

Windows Terminal に Cmder のシェルを追加

Windows Terminal の設定を開くと、 settings.json という設定ファイルが開かれます。

このファイル内の "profiles" -> "list" という要素が、各シェルの設定項目です。
(参考: Windows ターミナル プロファイルの設定 | Microsoft Docs )

この項目に Cmder 用の設定を書き加えていきましょう。

{
  .....

  "profiles": {
    "defaults": {
    },

    // "list" 配列に各シェル設定が羅列されている
    "list": [

      // Cmder 用の設定を追記する
      // --- 追記ここから ---
      {
        "guid": "{0ec43d47-f761-48f3-a99b-a8a73927f159}",
        "hidden": false,
        "name": "Cmder",
        "icon": "%USERPROFILE%\\Apps\\cmder_mini\\icons\\cmder.ico",
        "startingDirectory": "%USERPROFILE%",
        "commandline": "cmd.exe /k %USERPROFILE%\\Apps\\cmder_mini\\vendor\\init.bat"
      },
      // --- 追記ここまで ---

      {
        "guid": "{c6eaf9f4-32a7-5fdc-b5cf-066e8a4b1e40}",
        "hidden": false,
        "name": "Ubuntu-18.04",
        "source": "Windows.Terminal.Wsl"
      },

       .....
     ]
  }
}
キー 値の説明
guid 設定項目の guid
hidden 起動するシェルのリストに表示するか。通常は false
name シェル名
icon タブに表示するアイコン
startingDirectory 起動後のディレクトリ
commandline シェル起動コマンド
  • guid には、前述で発行した guid を登録
  • commandline で指定する /k オプションの引数には、Cmderインストールパス\\vendor\\init.bat を指定する
    • 設定例にあるように、環境変数を利用することも可能
  • icon の設定は任意だが、設定する場合は Cmderインストールパス\\icons\\cmder.ico を指定するとよい

以上を追記して保存することで、Cmder が選べるようになったかと思います。

最後に

Windows Terminal、これといって尖った機能があるわけではないのですが、スプリットビューなんかもあるし、シンプルでとても使いやすいので気に入っています。

WSL 上の Powerline なんかも綺麗に表示してくれますよ。
※以下ではフォントに HackGen の Nerd Fonts 対応版(まだ製作中のものですが…)、テーマには zsh の powerlevel10k テーマを使用