Переключение фокуса между редактором и встроенным терминалом в коде Visual Studio

516

Кто-нибудь знает сочетание клавиш (Mac и Linux) для переключения фокуса между редактором и встроенным терминалом в коде Visual Studio?

Abhijeet
источник
26
ctrl + '`' будет лучшим#-> Linux
muthukumar helius
14
Ctrl + '`' работает также на OS X без какой-либо дополнительной привязки ключа.
nataliastanko
2
ctrl+ '`' работает с Windows тоже без нареканий!
Ehtesham Z

Ответы:

987

Несмотря на то, что для VS Code существует множество модальных переключателей и сочетаний клавиш, для «перехода от редактора к терминалу и обратно» его не существует. Однако вы можете составить два шага, перегружая keyи используя when предложение .

Откройте файл keybindings.json в редакторе: CMD-SHIFT-P -> Предпочтения: откройте файл сочетаний клавиш и добавьте следующие записи:

// Toggle between terminal and editor focus
{ "key": "ctrl+`", "command": "workbench.action.terminal.focus"},
{ "key": "ctrl+`", "command": "workbench.action.focusActiveEditorGroup", "when": "terminalFocus"}

С помощью этих ярлыков я сосредоточусь между редактором и встроенным терминалом, используя одно и то же нажатие клавиши.

WGJ
источник
21
Безусловно, это лучший ответ как наиболее эргономически обоснованное решение: расширение существующей привязки ключей. Престижность!
mloskot
7
Спасибо, это сработало нормально и сэкономило много времени. Для пользователей международных клавиатур: "ctrl+`"можно указать как "ctrl+oem_3".
17
7
Поведение @Roman 1.18.0, безусловно, является улучшением с тех пор, как я написал свой ответ, но я думаю, что выше все еще лучше. Разница в том, что терминал не исчезнет при нажатии клавиши, сместится только фокус. Мне нравится держать свой терминал отображенным :)
WGJ
38
Обратите внимание, что эти ярлыки должны быть вставлены в keybindings.jsonфайл.
псевдомарвин
42
Откройте keybindings.json из редактора: CMD-SHIFT-P-> Preferences: Open Keyboard Shortcuts File. Также хороший ресурс: code.visualstudio.com/docs/getstarted/keybindings
derFunk
174

ctrl+` : Сосредоточиться на встроенном терминале

ctrl+1 : Сосредоточиться на редакторе (если команда editor-2 будет ctrl+ 2)

введите описание изображения здесь

Дополнительная информация: http://www.rscoder.com/2020/04/how-to-switch-focus-between-editor-and.html

Рахул Шукла
источник
5
где, черт возьми, "на любой клавиатуре"
Ewoks
7
чуть ниже клавиши
Рахул Шукла,
6
Спасибо. Ctrl + 1 - это то, что мне нужно, так как в некоторых случаях ctrl + `откроет внешний терминал и не сможет использовать его снова, чтобы вернуться в редактор VSCode
Тханг Нгуен,
2
Самый простой и точный ответ imho.
Томас
3
Control + '~' будет работать для переключения между ними. Я пользуюсь довольно давно.
уверен приятель
75

Ctrl+ Jработает; но также показывает / скрывает консоль.

Джошуа Рэй
источник
8
Cmd + J на ​​MacOS.
Miscreant
2
Самый простой, но работающий ответ - должен быть принят imho.
Кароль Селак
Не работает в Ubuntu Linux 16.04 (Xenial) + VSC 1.45.0
Альдо Бассанини
55

Немного опоздал к игре, но я настроил свой в следующем keybindings.json:

{
    "key": "ctrl+`",
    "command": "workbench.action.terminal.focus",
    "when": "editorTextFocus"
},
{
    "key": "ctrl+`",
    "command": "workbench.action.focusActiveEditorGroup",
    "when": "terminalFocus"
},
{
    "key": "alt+`",
    "command": "workbench.action.terminal.toggleTerminal"
}

Я хотел отдельные клавиши для открытия / закрытия терминала и переключения фокуса назад и вперед между окнами.

schmudu
источник
4
Картография, alt+`кажется, глючит - отслеживается на github.com/Microsoft/vscode/issues/41024#issuecomment-363096692
Бен Криси
2
Мне было altлегче нажимать, чем ctrl, поэтому в моей конфигурации все наоборот.
xji
Это отличное предложение, хотя я выбрал сохранение оригинальных привязок и использование altдля переключения фокуса.
Мистер
@BenCreasy Это только для macOS, в Windows это работает просто отлично.
Котаускас
24

Начиная с версии: 1.26.1 (linux), ярлык не установлен по умолчанию. Чтобы установить ярлык

  1. открыть панель сочетаний клавиш [ctrl + k, ctrl + s]
  2. Поиск Фокуса Терминала

введите описание изображения здесь

  1. Установите свой ярлык

Для редактора фокус уже установлен по умолчанию.

введите описание изображения здесь

Шубхам Джайн
источник
Поскольку они предоставляют дополнительные сопоставления клавиатуры, этот ответ проще и быстрее
LookAheadAtYourTypes
Это фокусирует первую группу редакторов - возможно, это не то, что хочет ОП. Вероятно, хочет текущий / активный редактор группы.
Mark
1
Это ответ на 2020 год и прочее> = 1.45.0
chrismarx
Отлично. Спасибо за ясность здесь.
Fiddy Bux
18

Я настроил мой следующим образом, так как я обнаружил, что ctrl+ `довольно сложно нажимать.

{
  "key": "ctrl+k",
  "command": "workbench.action.focusActiveEditorGroup",
  "when": "terminalFocus"
},
{
  "key": "ctrl+j",
  "command": "workbench.action.terminal.focus",
  "when": "!terminalFocus"
}

Я также настроил следующее для перемещения между редакторами.

{
  "key": "ctrl+h",
  "command": "workbench.action.focusPreviousGroup",
  "when": "!terminalFocus"
},
{
  "key": "ctrl+l",
  "command": "workbench.action.focusNextGroup",
  "when": "!terminalFocus"
}

Кстати, я настроен Caps Lockна ctrlна Mac из System Preferences => keyboard =>Modifier Keys.

Сэм Сюй
источник
8

Связывание клавиш по умолчанию для переключения встроенного терминала - "Ctrl +` "в соответствии со страницей документации по сочетаниям клавиш vscode . Если вам не нравится этот ярлык, вы можете изменить его в своем файле сочетаний клавиш, добавив что-то похожее на:

{ "key": "ctrl+l", "command": "workbench.action.terminal.toggleTerminal" }

Кажется, что по умолчанию нет привязки клавиш для простой фокусировки нижней панели. Поэтому, если вы не хотите переключать нижнюю панель, вам нужно добавить что-то похожее на следующее в файл привязок клавиш:

{ "key": "ctrl+t", "command": "workbench.action.focusPanel" }
alexriedl
источник
Отлично, спасибо! Я ищу второй ответ, который вы упомянули. Если кто-то интересуется сочетанием клавиш, чтобы вернуть фокус редактору, то это: Command + 1 (на Mac)
Abhijeet
Я думаю, что focusPanelдля общего региона (включают такие вещи, как «Проблемы», «Вывод» и «Консоль отладки». Есть также действие, специально для встроенного терминала workbench.action.terminal.focus.
wgj
8

Попробуйте использовать Ctrl + `, чтобы переключить видимость терминала и в результате переключить фокус.

Гаурав Гровер
источник
3

Не совсем то, что спрашивают, но я нашел это очень полезным и связанным.

Если кто-то хочет перейти с одного терминала на другой терминал, также открытый в панели интегрированных терминалов Visual Studio, вы можете выполнить поиск:

Terminal: Focus Next Terminal

Или добавьте следующую комбинацию клавиш и сделайте это быстрее с помощью комбинации клавиш.

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

Я надеюсь, что это помогает кому-то еще.

robertovg
источник
3

Ответ от Shubham Jain - лучший вариант с использованием встроенных сочетаний клавиш.

Я нанес на карту введите описание изображения здесь

к Ctrl+;

и переназначен введите описание изображения здесь

к Ctrl+L

Таким образом, вы можете перемещать фокус между терминалом и редактором и переключать терминал в непосредственной близости.

Джим
источник
Это решило это для меня! Сочетания клавиш -> Терминал: Фокус Терминал ( workbench.action.terminal.focus ) -> изменил связывание клавиш на желаемую комбинацию. Запуск на vscode Insiders 1.43.0
jeppoo1
2

Как правило, против кода используется, ctrl+jчтобы открыть терминал, поэтому я создал связывание клавиш для переключения с ctrl+kкомбинацией, как показано ниже keybindings.json:

[    
    {
        "key": "ctrl+k",
        "command": "workbench.action.terminal.focus"
    },
    {
        "key": "ctrl+k",
        "command": "workbench.action.focusActiveEditorGroup",
        "when": "terminalFocus"
    }
]
felipealvesgnu
источник
0

РЕШЕНИЕ ПРОСТОГО ОКНА ДЛЯ ЛЮБОГО РАСПОЛОЖЕНИЯ КЛАВИАТУРЫ (может работать для других ОС, но не проверено)

Я использую финскую клавиатуру, поэтому ничего из вышеперечисленного не сработало, но это должно работать для всех клавиатур.

  • Фокус терминала: наведите курсор мыши на текст терминала во встроенном терминале . Появится ярлык для фокусировки на терминале - мой, например, сказал CTRL + ö.
  • Фокус редактора: как упомянуто выше, используйте CTRL + 1.
JStrahl
источник
-1

Я сделал это, перейдя в меню «Настройки»> «Сочетания клавиш», а затем в разделе, в котором указана панель поиска типа «фокус-терминал», и выберите опцию. Он попросит ввести комбинацию, которую вы хотите установить для этого действия. Сделай это. Что касается редактора фокуса, введите «редактор фокуса» в строке поиска и введите нужный ключ. ЕСЛИ вы превосходно добавляете ключ. это можно удалить, перейдя к редактированию Джейсон, как указано в комментариях выше

Махад Али
источник
-1

control + '~' будет работать для переключения между ними. и `` 'чуть выше кнопки вкладки.

верный приятель
источник