ショートカットキーはカスタマイズできる

Windows Terminalはほかの多くのGUIアプリケーションと同様、ショートカットキー機能がデフォルトで提供されており、キーボードを介して操作できるようになっている。ショートカットキーは覚えて慣れるまで時間がかかるといったデメリットがある一方、無意識に手が動くレベルで使えるようになれば作業時間の短縮に繋がる機能でもある。

第5回でWindows Terminalのショートカットキーについて触れたが、すでに実装されている機能の多くがショートカットキー機能で扱えるようになっている。この標準で設定されているショートカットキーをそのまま利用してもかまわないのだが、Windows Terminalにはショートカットキーを編集できる機能も提供されている。

そもそもショートカットキーを利用しないユーザーにとっては、なぜこんな機能があるのか疑問に思うかもしれない。しかしながら、ショートカットキーを多用しているユーザーにとっては慣れ親しんだ、というよりも体に染み付いたショートカットキーの操作があったりする。そんなユーザーにとっては嬉しい機能なのだ。

ショートカットキーを普段使わないユーザーも、Windows Terminalを触るうちに、自分がよく利用する機能が見えてくるかもしれない。デフォルトで割り当てられているショートカットキーを覚えて使ってもいいし、しっくりこなければ編集して違うキーに割り当て、扱いやすいようカスタマイズしてみてもいいだろう。

今回は、このWindows Terminalにおけるショートカットキーのカスタマイズ方法について紹介する。

ショートカットキーの設定方法

Windows Terminalのショートカットキーの設定は、「”keybindings:[]”」のなかで定義するようになっている。標準で設定されているショートカットキーがdefaults.jsonの「keybindings:[]」内にあるので、そちらを見てもらえればわかるはずだ。

ショートカットキーの書式は次のようになっている。「”commands:”」で利用したい機能を指定し、「”keys:[]”」でショートカットキーを割り当てるかたちだ。

{ "command": "コマンド名", "keys": [ "キーの指定" ] }

さらに次のようにcommandによっては引数が用意されており、その引数によってコマンドの挙動を変更できるようにもなっている。

{ "command": { "action": "コマンド名", "オプション名": "値" }, "keys": ["キーの指定"] }

ショートカットキーとして利用できるコマンドと対象のコマンドに指定できる引数は次のとおりだ。

コマンド名 コマンドの説明 引数名 引数の説明
closePane フォーカスされているペインの終了 なし なし
closeTab フォーカスされているタブの終了 なし なし
closeWindow Window Terminalの終了 なし なし
copy 選択文字列のコピー trimWhitespace trueであれば改行を保持し、falseであれば改行せずスペースでうめる
decreaseFontSize 文字サイズの縮小 delta 指定した数値分のサイズ縮小
duplicateTab タブの複製 なし なし
find 検索ダイアログボックスを表示 なし なし
increaseFontSize 文字サイズの拡大 delta 指定した数値分のサイズ拡大
moveFocus ペインの移動 direction left/right/up/downの指定が必須、指定方向に移動
newTab 新規タブの作成 cmmandLine 新規タブとともに指定したコマンドを実行
同上 同上 startingDirectory 指定したディレクトリで新規タブ作成
同上 同上 tabTitle 新規タブ名
同上 同上 index 新規タブのindex指定
同上 同上 profiles 指定したguidまたはnameのシェルで新規タブ
nextTab タブの移動 なし なし
openNewTabDropdown ドロップダウンメニューの表示 なし なし
openSettings 設定ファイルの表示 なし なし
paste ペースト なし なし
prevTab タブの移動 なし なし
resetFontSize フォントサイズをデフォルトに戻す なし なし
resizePane フォーカスされているペインのサイズ変更 direction left/right/up/downの指定が必須、指定方向にサイズ変更
scrollDown スクロールダウン なし なし
scrollUp スクロールアップ なし なし
scrollUpPage ページスクロールアップ なし なし
scrollDownPage ページスクロールダウン なし なし
splitPane 新規ペインの作成 split vertical/horizontal/autoの指定が必須、指定方向にペインを分割作成
同上 同上 commandLine 新規ペインとともに指定したコマンドを実行
同上 同上 startingDirectory 指定したディレクトリで新規ペイン作成
同上 同上 tabTitle ペインフォーカス時のタブタイトル名
同上 同上 index 新規ペインのindex指定
同上 同上 profile 指定したguidまたはnameのシェルで新規ペイン
switchToTab indexで指定されたタブへの移動 index タブのインデックスの指定が必須
toggleFullscreen フルスクリーンの切り替え なし なし
unbound 標準のショートカットキーの無効化 なし なし

実際にそれぞれの書式で設定されているショートカットキーの一例を見てみよう。「”newTab”」のショートカットキーでは、「”commands:”」にコマンド名である「newTab」を指定し、キーとして「Ctrl」キーと「Shift」キーと「T」キーを設定している。設定されているキーを押すと、新規タブが立ち上がる。

{ "command": "newTab", "keys": [ "ctrl+shift+t" ] }

「”splitPane”」のショートカットキーでは引数の機能を利用するため「”action:”」でコマンド名である「splitPane」を、引数「”split:”」でペインの分割作成の方向であるhorizontalと指定し、キーとして「Alt」キーと「Shift」キーと-「キー」を設定している。設定されているキーを押すと、フォーカスされているペインが上下(水平)に分割されて、新規ペインが作成される。

splitPaneのショートカットキー

 { "command": { "action": "splitPane", "split": "horizontal"}, "keys": [ "alt+shift+-" ] }

ショートカットキーに指定できるコマンドやコマンドに指定できる引数に関しては、Windows TerminalのGithubにショートカットキーに関するドキュメントが用意されている。このドキュメントは執筆時現在のWindows Terminal v0.9.433.0のもので、バージョンによってコマンドや引数が変わる可能性がある。Windows Terminalのアップデートを行った際は、Githubで対象のバージョンのドキュメントを確認しておくといいだろう。

ショートカットキーの編集サンプル

ショートカットキーの設定方法がわかったところで、実際に新規のショートカットキーを作ってみよう。先ほどショートカットキーは「”keybindings:[]”」内に記述することを説明したが、次のように「profiles.json」に用意されているはずだ。新たなショートカットキーの作成はこの中で定義する。

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

Windows Terminalの標準のコピーのショートカットキーは「Ctrl」キーと「Shift」キー、「C」キーが割り当てられている。このコピー機能を次のように「commands」に「copy」を指定し、「keys」に「Ctrl」キーと「Alt」キー、「C」キーを設定してみる。設定ファイルを保存して、新たなに作成したショートカットキーで文字列をコピーし、貼り付けを実行してみれば追加したショートカットキーが有効になっていることが確認できる。

新たなショートカットキーでコピー可能に

ペーストも同じように設定してみよう。次のように「commands」として「paste」を指定し、「keys」に「Ctrl」キーと「Alt」キー、「V」キーを設定する。設定ファイルを保存すれば、これでコピーとペーストがともに新たなショートカットキーで扱えるようになるはずだ。

新たなショートカットキーでペースト可能に

コピーとペースト機能を異なるショートカットキーで利用できるよう設定してみたわけだが、元から設定されているコピーとペーストのショートカットキーも変わらず利用できるようになっている。標準のショートカットキーは「defaults.json」に記述されているため、削除することはできない。もし、デフォルトのショートカットキーを無効にしたい場合は「commands」である「unbound」を使用する。

先ほど設定した新たなコピーとペーストのショートカットキーのみを有効にしたければ、次のように「profiles.json」に記述する。

標準のコピーとペーストのショートカットキーを無効に

コマンドunboundを設定し、無効にしたいショートカットキーの組み合わせを指定することで対象のショートカットキーを無効にできる。設定を保存すれば標準のコピーとペーストのショートカットキーが利用できなくなっていることを確認できる。

ショートカットキーを編集して使いやすい環境に

ショートカットキーは頻繁に使うユーザーとほぼ使わないユーザーにはっきり分かれる機能だが、このショートカットキーの編集機能は、どちらのユーザーにとっても利点がある。ショートカットキーにカスタマイズ性を持たせることで、利用者が作業しやすい環境を手に入れやすくしていると言えるからだ。

本稿を参考に、よく利用する機能に設定されているショートカットキーを編集し、利便性の高いWindows Terminal環境にカスタマイズしてみていただきたい。

参考資料