ショヌトカットキヌはカスタマむズできる

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環境にカスタマむズしおみおいただきたい。

参考資料