ショートカットキーはカスタマイズできる
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環境にカスタマイズしてみていただきたい。