Posted at

統合ターミナルのシェルで実行したいキーバインドが VSCode で実行される

More than 1 year has passed since last update.


内容

統合ターミナルで Bash on Ubuntu を利用している際に、Ctrl+P でコマンド履歴を表示させようとすると VSCode で同じキーバインドが設定されている「ファイルに移動」にフォーカスを奪われてしまう。


対応

ユーザー設定 (settings.json) より、terminal.integrated.commandToSkipShell の設定を変更する。

terminal.integrated.commandToSkipShell に Command id が書かれている場合、キー実行時にコマンドがターミナル内のシェルに送信されずに VSCode に送られるので、同じキーバインドの場合はシェルに対して実行されない。

今回は Ctrl+P のキーバインドをシェルで使えるようにしたいので、「ファイルに移動」のアクションである workbench.action.quickOpen をコメントアウトする。

{

"terminal.integrated.commandsToSkipShell": [
"editor.action.toggleTabFocusMode",
"workbench.action.debug.continue",
"workbench.action.debug.restart",
"workbench.action.debug.run",
"workbench.action.debug.start",
"workbench.action.debug.stop",
"workbench.action.openNextRecentlyUsedEditorInGroup",
"workbench.action.openPreviousRecentlyUsedEditorInGroup",
//"workbench.action.quickOpen",
"workbench.action.showCommands",
"workbench.action.terminal.clear",
"workbench.action.terminal.copySelection",
"workbench.action.terminal.focus",
"workbench.action.terminal.focusNext",
"workbench.action.terminal.focusPrevious",
"workbench.action.terminal.kill",
"workbench.action.terminal.new",
"workbench.action.terminal.paste",
"workbench.action.terminal.runSelectedText",
"workbench.action.terminal.scrollDown",
"workbench.action.terminal.scrollDownPage",
"workbench.action.terminal.scrollToBottom",
"workbench.action.terminal.scrollToTop",
"workbench.action.terminal.scrollUp",
"workbench.action.terminal.scrollUpPage",
"workbench.action.terminal.toggleTerminal"
],
}

設定後は、ターミナルにフォーカスがある状態で Ctrl+P を実行すると履歴が表示され、ターミナルにフォーカスがない状態で実行すると「ファイルに移動」が実行されるようになる。


参考