VS Code Key Binding для быстрого переключения между экранами терминалов?

Я пытаюсь выяснить, есть ли способ настроить привязку клавиш, чтобы обеспечить быстрый переход между окнами терминала, которые я открывал во встроенном терминале, вместо того, чтобы каждый раз нажимать на селектор вниз, Кто-нибудь знает команду для этого при создании привязки личного ключа или где я могу увидеть список всех возможных команд для VSC? Заранее благодарю вас!

Ответ 1

Из документации Microsoft есть подсказка:

Совет: если вы интенсивно используете несколько терминалов, вы можете добавить ключ обозначены привязки для команд focusNext, focusPrevious и kill в разделе "Привязки клавиш", чтобы разрешить навигацию между ними, используя только клавиатура.

С здесь:

Другие терминальные команды доступны и могут быть привязаны к вашему предпочтительные сочетания клавиш. Они есть: workbench.action.terminal.focus: сфокусировать терминал. Это как переключать, но фокусирует терминал, а не скрывает его, если он видимый.

workbench.action.terminal.focusNext: Focuses the next terminal instance. 
workbench.action.terminal.focusPrevious: Focuses the previous terminal instance. 
workbench.action.terminal.kill: Remove the current terminal instance.
workbench.action.terminal.runSelectedText: Run the selected text in the terminal instance.

Просто назначьте эти сочетания клавиш предпочтительным сочетаниям клавиш, и все готово.

Это может не быть решением для прямого перехода к терминалу (например, как vims gt2), но это, безусловно, начало.


Изменение: Просто поиграл и обнаружил, что вы также можете сосредоточиться на конкретном терминале. Просто добавьте любую из этих команд в свой keybindings.json, и все готово!

// - workbench.action.terminal.focusAtIndex1
// - workbench.action.terminal.focusAtIndex2
// - workbench.action.terminal.focusAtIndex3
// - workbench.action.terminal.focusAtIndex4
// - workbench.action.terminal.focusAtIndex5
// - workbench.action.terminal.focusAtIndex6
// - workbench.action.terminal.focusAtIndex7
// - workbench.action.terminal.focusAtIndex8
// - workbench.action.terminal.focusAtIndex9

например, { "key": "yourkeybinding", "command": "workbench.action.terminal.focusAtIndex1"}

Ответ 2

Если вы хотите что-то, что может показаться немного более плавным, чем использование произвольных привязок клавиш, вы можете заставить Ctrl + Tab и Ctrl + Shift + Tab работать как для переключения редактора, так и для переключения терминала.

Откройте файл сочетаний клавиш с помощью поиска ctrl+shift+p для поиска keyboard file. Затем добавьте..

{ 
  "key": "ctrl+tab",            
  "command": "workbench.action.openNextRecentlyUsedEditorInGroup",
  "when": "editorFocus" 
},
{ "key": "shift+ctrl+tab",      
  "command": "workbench.action.openPreviousRecentlyUsedEditorInGroup",
  "when": "editorFocus" 
},
{
  "key": "ctrl+tab",
  "command": "workbench.action.terminal.focusNext",
  "when": "terminalFocus"
},
{
  "key": "ctrl+shift+tab",
  "command": "workbench.action.terminal.focusPrevious",
  "when": "terminalFocus"
}

Ответ 3

Здесь решение, которое я построил, хорошо работает для меня на OSX.

Он имитирует те же самые ярлыки, которые используются в редакторе, чтобы открыть новые файлы (cmd + n) и переключиться между вкладками (cmd + left | right) и теми же ярлыками для терминалов, когда это представление находится в фокусе.

Нажмите cmd+shift+p и введите keyboard, чтобы найти Preferences: Open Keyboard Shortcuts File

Добавьте следующее в файл keybindings.json и сохраните его.

{
    "key": "cmd+alt+right",
    "command": "workbench.action.terminal.focusNext",
    "when": "terminalFocus"
},
{
    "key": "cmd+alt+left",
    "command": "workbench.action.terminal.focusPrevious",
    "when": "terminalFocus"
},
{
    "key": "cmd+n",
    "command": "workbench.action.terminal.new",
    "when": "terminalFocus"
},
{
    "key": "cmd+w",
    "command": "workbench.action.terminal.kill",
    "when": "terminalFocus"
}

Он также делает то же самое для закрывающих терминалов (cmd + w)

Ответ 4

На основе Haini ответьте, добавьте код ниже в keybindings.json

{
  "key": "shift+up",
  "command": "workbench.action.terminal.focusPrevious",
  "when": "terminalFocus"
},
{
  "key": "shift+down",
  "command": "workbench.action.terminal.focusNext",
  "when": "terminalFocus"
}

Теперь вы можете переключаться между терминалами с помощью shift + down или shift + up