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


516

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


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"}

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


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 + '~' будет работать для переключения между ними. Я пользуюсь довольно давно.
уверен приятель


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"
}

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


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" }

Отлично, спасибо! Я ищу второй ответ, который вы упомянули. Если кто-то интересуется сочетанием клавиш, чтобы вернуть фокус редактору, то это: 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"
  },

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


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"
    }
]

0

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

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

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

-1

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


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.