内容
統合ターミナルで 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
を実行すると履歴が表示され、ターミナルにフォーカスがない状態で実行すると「ファイルに移動」が実行されるようになる。