Vscode: F1 and keybinding customization doesn't work in the integrated terminal

Created on 6 Jun 2016  路  9Comments  路  Source: microsoft/vscode

  • VSCode Version: Insiders 1.2.0
  • OS Version: Windows 10 Insider Build 14332

Steps to Reproduce:

  1. Open Terminal
  2. Make sure Terminal has focus
  3. Press F1 key to invoke Command Palette
  4. Command Palette doesn't open

Cheers,
Trevor Sullivan
Microsoft MVP: Cloud & Data Center Management
https://trevorsullivan.net
https://twitter.com/pcgeek86

bug integrated-terminal verified

Most helpful comment

I just pushed a change that resolves this that will be available for testing in Insiders tomorrow. It exposes the terminal.integrated.commandsToSkipShell setting which is a list of command IDs that will _not_ be handled by the terminal, allowing them to bubble up to be handled by the VS Code keybinding system. This is the default value:

    "terminal.integrated.commandsToSkipShell": [
        "editor.action.toggleTabFocusMode",
        "workbench.action.quickOpen",
        "workbench.action.showCommands",
        "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.scrollUp",
        "workbench.action.terminal.toggleTerminal"
    ]

All 9 comments

Huh, didn't even notice this because I use ctrl+shift+p for the command palette. Thanks for the report @pcgeek86

Of course, thanks for looking into it @Tyriar!! :smile:

I used to use CTRL + SHIFT + P, but then I changed over to F1 when I heard other folks using it. Honestly I love the natural feel of having both options. I use them both at various times.

I originally didn't understand why you would expect F1 to do this in the "new terminal", but by "new terminal", I assumed you meat the a CMD prompt window, such as displayed by pressing Ctrl+Alt+C under version 1.2.1. I now understand you were referring to the "integrated terminal" displayed with Ctrl+` (Ctrl+BackTick)

The problem here is knowing which key sequences vscode should capture and which should be passed to the terminal. If vscode consumes F1 then any terminal applications that rely on this will no longer work. Going to leave this one for now unless many people report as there is always the workaround of closing the terminal or using the other keybindings.

Agreed, I believe this is then not a bug but by design.

I'm a F1 person. Not having F1 is particularly weird for cases like when you want to use the command palette to create a new terminal or navigate between them.

Putting my comment on #8312 here on the potential way forward:

I think the eventual solution to this is being able to tell the terminal which keystrokes to not pass to the terminal, it could be a bit tricky to do though.

I just pushed a change that resolves this that will be available for testing in Insiders tomorrow. It exposes the terminal.integrated.commandsToSkipShell setting which is a list of command IDs that will _not_ be handled by the terminal, allowing them to bubble up to be handled by the VS Code keybinding system. This is the default value:

    "terminal.integrated.commandsToSkipShell": [
        "editor.action.toggleTabFocusMode",
        "workbench.action.quickOpen",
        "workbench.action.showCommands",
        "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.scrollUp",
        "workbench.action.terminal.toggleTerminal"
    ]
Was this page helpful?
0 / 5 - 0 ratings