要旨
- VSCode の Integrated Terminal を利用している場合、デフォルトでは特定のキーバインド (ex:
Ctrl + P
) が Integrated Terminal ではなく VSCode 本体に優先的に作用してしまう。 - 設定 (
Integrated: Commands To Skip Shell
) により、当該キーバインドを Integrated Terminal に作用させることができる。
環境
- Visual Studio Code 1.79.2
本題
VSCode の Integrated Terminal
VSCode を利用してプログラミングをする際、自分は Integrated Terminal を多用します。別 Window に立ち上げたターミナルにフォーカスを移す手間が省けたり、何かと便利です。
ただ、不満点もあったりします。自分はターミナルを Emacs キーバインドで利用しているのですが、通常のターミナルアプリでは「前回入力したコマンドを再度呼び出す」場合は Ctrl + P
で実行できます。
しかし、VSCode の Integrated Terminal では、VSCode 本体に Ctrl + P
がデフォルトで割り当てられており、Integrated Terminal 上で実行しても VSCode 本体にキーバインドが吸われてしまいます。。。
Ctrl + P
を Integrated Terminal に取り戻す!
いつから存在する機能なのかは存じ上げませんが、ちゃんと Integrated Terminal に優先的にキーバインドを割り当てられる設定がありました。
設定項目
VSCode の設定画面で [機能] → [ターミナル] → [Integrated: Commands To Skip Shell]
設定方法
VSCode の設定画面上では、Integrated Terminal に優先させるコマンド (キーバインド) をリスト形式で入力する方式になっています。今回のケースでは、Ctrl + P
が VSCode では workbench.action.quickOpen
というアクションに紐づいているので、このコマンドを VSCode 本体ではなく Integrated Terminal に優先的に送るようにリストに入力します。
注意点として、Integrated Terminal に優先させるコマンドを入力する際、当該コマンドの最初に -
を付ける必要があります。
今回の場合は、-workbench.action.quickOpen
と入力します。
これで Integrated Terminal 上で Ctrl + P
を入力しても、従来のターミナルアプリ上と同じ挙動になってくれます。