Przełącz fokus między edytorem a zintegrowanym terminalem w Visual Studio Code

511

Czy ktoś zna skrót klawiaturowy (Mac i Linux) do przełączania fokusa między edytorem a zintegrowanym terminalem w Visual Studio Code?

Abhijeet
źródło
25
ctrl + '' będzie najlepszy#-> Linux
muthukumar helius
13
ctrl + '' 'działa także na OS X bez żadnego dodatkowego przypisania klawisza.
nataliastanko
2
ctrl+ „” działa również bezbłędnie w systemie Windows!
Ehtesham Z

Odpowiedzi:

980

Podczas gdy istnieje wiele modalnych przełączników i skrótów nawigacyjnych dla VS Code, nie ma jednego specjalnie dla „przejścia z edytora do terminalu iz powrotem”. Można jednak skomponować dwa kroki, przeciążając keyi używając when klauzuli .

Otwórz keybindings.json w edytorze: CMD-SHIFT-P -> Preferencje: Otwórz plik skrótów klawiaturowych i dodaj następujące wpisy:

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

Za pomocą tych skrótów skupię się między edytorem a terminalem zintegrowanym, używając tego samego klawisza.

wgj
źródło
20
Zdecydowanie jest to najlepsza odpowiedź jako najbardziej ergonomicznie uzasadnione rozwiązanie: rozszerzenie istniejącego powiązania klawiszy. Sława!
mloskot
7
Dzięki, działało dobrze i oszczędza dużo czasu. Dla użytkowników klawiatur międzynarodowych: "ctrl+`"można określić jako "ctrl+oem_3".
esel
7
Zachowanie @Roman 1.18.0 jest z pewnością poprawą od czasu, gdy napisałem odpowiedź, ale myślę, że powyższe jest jeszcze lepsze. Różnica polega na tym, że terminal nie zniknie po naciśnięciu klawisza, tylko ostrość się zmieni. Uwielbiam wyświetlać mój terminal :)
wgj
37
Pamiętaj, że te skróty należy wkleić do keybindings.jsonpliku.
pseudomarvin
41
Otwórz keybindings.json w edytorze: CMD-SHIFT-P-> Preferences: Open Keyboard Shortcuts File. Również niezły zasób: code.visualstudio.com/docs/getstarted/keybindings
derFunk
173

ctrl+` : Skoncentrowanie się na zintegrowanym terminalu

ctrl+1 : Aby skupić się na edytorze (jeśli polecenie edytora-2 byłoby ctrl+ 2)

wprowadź opis zdjęcia tutaj

Więcej informacji: http://www.rscoder.com/2020/04/how-to-switch-focus-between-editor-and.html

Rahul Shukla
źródło
4
gdzie do diabła jest „na dowolnej klawiaturze”
Ewoks
6
tuż poniżej klawisza esc :)
Rahul Shukla
5
Dziękuję Ci. Ctrl + 1 jest tym, czego potrzebuję, ponieważ w niektórych przypadkach ctrl + `otworzy terminal zewnętrzny i nie może go użyć ponownie, aby wrócić do edytora VSCode
Thang Nguyen
2
najprostsza i najdokładniejsza odpowiedź imho.
Tomas
3
Control + '~' będzie działać na przełączanie między nimi. Używam od dłuższego czasu.
surender pal
75

Ctrl+ Jdziała; ale także pokazuje / ukrywa konsolę.

Joshua Wray
źródło
8
Cmd + J na MacOS.
Miscreant,
2
Najprostsza, ale działająca odpowiedź - należy przyjąć imho.
Karol Selak,
Nie działa w systemie Ubuntu Linux 16.04 (Xenial) + VSC 1.45.0
Aldo Bassanini
54

Trochę późno do gry, ale skonfigurowałem mój w następujący sposób 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"
}

Chciałem osobnych kluczy do otwierania / zamykania terminala i przełączania fokusa tam i z powrotem między oknami.

schmudu
źródło
4
Mapowanie alt+`wydaje się być błędne
Ben Creasy
2
altŁatwiej mi było nacisnąć niż ctrl, więc w mojej konfiguracji jest odwrotnie.
Xji
To świetna propozycja, chociaż zdecydowałem się zachować oryginalne wiązania i użyć altprzełącznika fokusu.
Pan Duhart
@BenCreasy To tylko dla systemu macOS, w systemie Windows działa to dobrze.
Kotauskas
24

Od wersji: 1.26.1 (linux) skrót nie jest ustawiony domyślnie. Aby ustawić skrót

  1. otwórz panel skrótów klawiaturowych [ctrl + k, ctrl + s]
  2. Wyszukaj Focus Terminal

wprowadź opis zdjęcia tutaj

  1. Ustaw skrót

W przypadku edytora fokus jest już ustawiony domyślnie.

wprowadź opis zdjęcia tutaj

Shubham Jain
źródło
Ponieważ zapewniają dodatkowe odwzorowania klawiatury, ta odpowiedź jest prostsza i szybsza
LookAheadAtYourTypes
To skupia pierwszą grupę redaktorów - może nie być tym, czego chce OP. Prawdopodobnie chce bieżącej / aktywnej grupy redaktorów.
Mark
1
To jest odpowiedź na 2020 rok i wszystko> = 1.45.0
chrismarx
Świetny. Dziękuję za jasność tutaj.
Fiddy Bux
18

Skonfigurowałem mój w następujący sposób, ponieważ znalazłem, że ctrl+ `jest trochę trudny do naciśnięcia.

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

Skonfigurowałem również następujące elementy, aby przechodzić między grupami edytorów.

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

Nawiasem mówiąc, ja skonfigurowany Caps Lockdo ctrlMac z System Preferences => keyboard =>Modifier Keys.

Sam Xu
źródło
8

Domyślnym skrótem klawiszowym do przełączania zintegrowanego terminalu jest „Ctrl + '” zgodnie ze stroną dokumentacji skrótów klawiszowych vscode . Jeśli nie podoba ci się ten skrót, możesz go zmienić w pliku skrótów klawiszowych, dodając coś podobnego do:

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

Wygląda na to, że nie ma domyślnego skrótu do zwykłego ustawiania ostrości na dolnym panelu. Jeśli więc nie chcesz przełączać dolnego panelu, musisz dodać coś podobnego do następującego w pliku skrótów klawiszowych:

{ "key": "ctrl+t", "command": "workbench.action.focusPanel" }
alexriedl
źródło
Perfekcyjnie, dzięki! Szukam drugiej odpowiedzi, o której wspomniałeś. Jeśli ktoś zastanawia się nad skrótem klawiaturowym, aby przenieść fokus z powrotem do edytora, jest to: Command + 1 (na komputerze Mac)
Abhijeet
Myślę, że focusPaneldotyczy ogólnego regionu (obejmują takie rzeczy, jak „Problemy”, „Wyjście” i „Konsola debugowania”. Istnieje również akcja specjalnie dla zintegrowanego terminala workbench.action.terminal.focus.
wgj
8

Spróbuj użyć klawiszy ctrl + `, aby przełączyć widoczność terminala, a w rezultacie przełączyć fokus.

Gaurav Grover
źródło
3

Nie jest dokładnie tym, o co pytamy, ale uważam, że jest to bardzo przydatne i powiązane.

Jeśli ktoś chce zmienić z jednego terminala na inny, również otwarty w zintegrowanym panelu terminali Visual Studio, możesz wyszukać:

Terminal: Focus Next Terminal

Lub dodaj następujący skrót klawiaturowy i rób to szybciej dzięki kombinacji klawiszy.

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

Mam nadzieję, że to pomaga komuś innemu.

robertovg
źródło
3

Odpowiedź Shubhama Jaina jest teraz najlepszą opcją przy użyciu wbudowanych skrótów klawiaturowych.

Zmapowałem wprowadź opis zdjęcia tutaj

do Ctrl+;

i odwzorowano wprowadź opis zdjęcia tutaj

do Ctrl+L

W ten sposób możesz przenosić fokus między terminalem a edytorem i przełączać terminal w bliskiej odległości.

Jim
źródło
To rozwiązało dla mnie! Skróty klawiaturowe -> Terminal: Terminal ostrości ( workbench.action.terminal.focus ) -> zmienił kombinacja klawiszy do mojego pożądanej kombinacji. Działa na vscode Insiders 1.43.0
jeppoo1
2

Ogólnie rzecz biorąc, kod vs używa ctrl+jdo otwarcia terminala, więc utworzyłem skrót klawiszowy do przełączania z ctrl+kkombinacją, jak poniżej keybindings.json:

[    
    {
        "key": "ctrl+k",
        "command": "workbench.action.terminal.focus"
    },
    {
        "key": "ctrl+k",
        "command": "workbench.action.focusActiveEditorGroup",
        "when": "terminalFocus"
    }
]
felipealvesgnu
źródło
0

PROSTE ROZWIĄZANIE WINDOWS DO KAŻDEGO UKŁADU KLAWIATURY (może działać na innym systemie operacyjnym, ale nie zostało przetestowane)

Używam fińskiej klawiatury, więc żadna z powyższych nie działała, ale powinno to działać na wszystkich klawiaturach.

  • Nacisk na terminal: najedź kursorem na tekst terminala w zintegrowanym terminalu . Pojawi się skrót do skupiania się na terminalu - mój na przykład powiedział CTRL + ö.
  • Uwaga edytora: jak wspomniano powyżej, użyj CTRL + 1.
JStrahl
źródło
-1

Zrobiłem to, przechodząc do ustawienia> Skróty klawiaturowe, a następnie w sekcji, w której podano terminal fokusowy typu paska wyszukiwania i wybierz opcję. Zostaniesz poproszony o wpisanie kombinacji, którą chcesz ustawić dla tej akcji. Zrób to. Jeśli chodzi o fokus edytora, w pasku wyszukiwania wpisz „fokus edytora” i wpisz żądany klawisz. JEŚLI doskonale dodasz klucz. można go usunąć, edytując Jason, jak wspomniano w powyższych komentarzach

Mahad Ali
źródło
-1

Ctrl + „~” będzie działać na przełączanie między nimi. i „ ` ”jest tuż nad klawiszem tab.

pewny kumpel
źródło