2020年2月14日金曜日

Windows Terminal: 新たなシェル項目を追加

(2020/02/13現在)
コマンドライン使用者に Windows Terminal はなかなか便利そうである.
Windows Terminal のタブの右にある
+ v
の v をクリックすると,起動可能なシェルのリストが表示される. 

ここでたとえば cmd をクリックすれば, cmd.exe のタブが開く.

現在標準で起動できるのは
  • Windows Powershell
  • cmd
  • Azure Cloud Shell
の 3 項目のみ.ここに自分で使うアイテムを追加して便利にカスタマイズしたい.

そこで今回は,cmd に起動バッチファイルを与えて,「環境設定済み cmd」を起動できるよう設定を追加する.
具体的には conda 環境を一発起動させて,python でウハウハしよう.

では,行ってみよう.

タブ右横の
+ v
の v をクリックしたとき,シェルリストの下に Settings という項目がある.これをクリックすると,設定用ファイル profiles.json が関連付けられたエディタ等で開くので,書き換えていけばよい.

筆者の環境では,デフォルトはこうだった.

// To view the default settings, hold "alt" while clicking on the "Settings" button.
// For documentation on these settings, see: https://aka.ms/terminal-documentation

{
    "$schema": "https://aka.ms/terminal-profiles-schema",

    "defaultProfile": "{(*guid*)}",

    "profiles":
    [
        {
            // Make changes here to the powershell.exe profile
            "guid": "{(*guid*)}",
            "name": "Windows PowerShell",
            "commandline": "powershell.exe",
            "hidden": false
        },
        {
            // Make changes here to the cmd.exe profile
            "guid": "{(*guid*)}",
            "name": "cmd",
            "commandline": "cmd.exe",
            "hidden": false
        },
        {
            "guid": "{(*guid*)}",
            "hidden": false,
            "name": "Azure Cloud Shell",
            "source": "Windows.Terminal.Azure"
        }
    ],

    // Add custom color schemes to this array
    "schemes": [],

    // Add any keybinding overrides to this array.
    // To unbind a default keybinding, set the command to "unbound"
    "keybindings": []
}
注:(*guid*)には実際は別々の guid が入っている
注:json のくせにコメント行とか生意気o(`Д´*)o


この profile 配列の中に,うまいことアイテムを追加すればよい.末尾のカンマの有無にはご注意,JSON のルールに従い,配列の途中のアイテムにはつけ,最後のアイテムにはつけない.

miniconda なら,スタートメニューのショートカットを参考にするとこうなる.cmd.exe の /K オプションを利用している.
        {
            // Make changes here to the cmd.exe profile
            "guid": "{(*guid*)}",
            "name": "miniconda3",
            "commandline": "cmd.exe /K C:\\Users\\your_user_name\\AppData\\Local\\Continuum\\miniconda3\\Scripts\\activate.bat C:\\Users\\your_user_name\\AppData\\Local\\Continuum\\miniconda3",
            "hidden": false
        },
実際のディレクトリ名は自分の環境に合わせて書き換えてください.

ここで困るのが guid だが,とりあえず他の環境と重複しなければよいようだ.
手元の環境と一切関係なく,オンラインで生成したのでも動いた.
https://www.guidgenerator.com/online-guid-generator.aspx
一方,他のアイテムと重複すると,最後のアイテムで上書きされる.

できあがりは下記のようになった.
// To view the default settings, hold "alt" while clicking on the "Settings" button.
// For documentation on these settings, see: https://aka.ms/terminal-documentation

{
    "$schema": "https://aka.ms/terminal-profiles-schema",

    "defaultProfile": "{(*guid*)}",

    "profiles":
    [
        {
            // Make changes here to the powershell.exe profile
            "guid": "{(*guid*)}",
            "name": "Windows PowerShell",
            "commandline": "powershell.exe",
            "hidden": false
        },
        {
            // Make changes here to the cmd.exe profile
            "guid": "{(*guid*)}",
            "name": "cmd",
            "commandline": "cmd.exe",
            "hidden": false
        },
        {
            // Make changes here to the cmd.exe profile
            "guid": "{(*guid*)}",
            "name": "miniconda3",
            "commandline": "cmd.exe /K C:\\Users\\your_user_name\\AppData\\Local\\Continuum\\miniconda3\\Scripts\\activate.bat C:\\Users\\your_user_name\\AppData\\Local\\Continuum\\miniconda3",
            "hidden": false
        },
        {
            "guid": "{(*guid*)}",
            "hidden": false,
            "name": "Azure Cloud Shell",
            "source": "Windows.Terminal.Azure"
        }
    ],

    // Add custom color schemes to this array
    "schemes": [],

    // Add any keybinding overrides to this array.
    // To unbind a default keybinding, set the command to "unbound"
    "keybindings": []
}
実行結果:


アイテム出現.miniconda3 をクリックすると








ばっちり.これで conda 環境を一発起動し放題だ.
自分の好みのバッチファイルを作って,conda でも pipenv でもどんどん項目を追加していきましょう.

著者近況:読者の皆さん(誰)お久しぶりです,4年半ぶり位でしょうか.matlab 中心の生活から,c++ & python 中心の生活になっています.

0 件のコメント:

コメントを投稿