Klawisz Tab Visual Studio Code nie wstawia karty


330

Używam Visual Studio Code jako mojego edytora Unity. Przeprowadziłem wyszukiwanie w google, ale nie znalazłem nic na temat mojego problemu.

Problem jest prosty, naciśnięcie ⇥ Tabedytora nic nie robi. Spodziewam się, że wstawi 4 spacje.

Czy ktoś wie, co mogę zrobić, aby ⇥ Tabpracować zgodnie z oczekiwaniami?


zdarza się to ponownie w poufnych informacjach ...
— Bruce Lee,

8
Miałem problem polegający na tym, że tabulator po prostu wstawiał tabulator poza edytorem (nawigacja między elementami interfejsu użytkownika). Ponowne uruchomienie edytora naprawiło to.
— Rivenfall

Nie odpowiadam na pytania operacyjne, ale dla każdego, kto wyląduje tutaj po przeszukaniu „niedziałającej zakładki Visual Studio” lub po problemach po wciśnięciu Tab w Visual Studio wybiera blok zamiast dodania wcięcia. Można odwołać się do tej odpowiedzi przez Karela Tamayo
— Justin Lessard

Pozostaje problem w kodzie v1.45.1 od czerwca 2020 r. Rozwiązaniem jest usunięcie Toggle Tab Key Moves Focusprzypisania klawiszy Ctrl + M(patrz odpowiedź @Addison). Dziwna „funkcja”.
— AlainD

Odpowiedzi:


946

Przez przypadek włączyłem inny tryb dla klawisza tab. Naprawiono to naciskając Ctrl+ M.

Z dokumentów związanych ze skrótami klawiszowymi Visual Studio Code :

| Key      | Command                                 | Command id                       |
| Ctrl + M | Toggle Use of Tab Key for Setting Focus | editor.action.toggleTabFocusMode |

Bieżący tryb sterowania kartami powinien również pojawić się na pasku stanu:

wprowadź opis zdjęcia tutaj


28
Zdarzyło mi się, gdy próbowałem użyć kodu collapse ( Ctrl + M, Ctrl + O). Dzięki.
— ciekawe-nazwa-tutaj

3
Co to jest Setting Focus ?
— madhu131313

9
Na pasku stanu u dołu znajduje się jasnozielony „Tab Moves Focus”, jeśli przez pomyłkę naciśniesz Ctrl + M.
— Jannunen,

3
@Jannunen masz rację, niestety dla nas, którzy mają 25-calowe ekrany, nikt nie zauważy, że malutka rzecz w kącie ...
— strwoc

3
ale dlaczego?
— hormberg

115

Aby rozwiązać problem

Naciśnięcie ctrl+ M powoduje ⇥ Tab przesunięcie fokusa zamiast wstawiania ⇥ Tab znaku.
Wyłącz go, naciskając ponownie skrót.

Aby wyłączyć skrót

  1. Otwórz „Skróty klawiaturowe” za pomocą ctrl+ K, a następnie ctrl+ S.
    Lub przejdź do Plik> Preferencje> Skróty klawiaturowe .
  2. Szukać toggle tab key moves focus.
  3. Kliknij prawym przyciskiem, Remove Keybinding.

3
Dziękuję Ci za to! Używam ctrl + m-> ctrl + k-> ctrl + 0do zwijania kodu i prawie codziennie przypadkowo łamię swoją kartę wcześniej :)
— ttugates

Dzięki stary, to naprawdę działa. Zapomniałem, że nacisnąłem Ctrl + mklawisze.
— iFart,

Właśnie zainstalowałem MSVS 2019. Nie widzę Preferencji w zakładce Plik. ctrl-k, ctrl-s otwiera listę urywków. Nie widzę opcji „Przełącz klawisz Tab przenosi fokus”. Z jakiej wersji MSVS korzystasz?
— riderBill

1
@riderBill - dotyczy najnowszego kodu VS 1.39.2 (15.10.2019). Używasz Microsoft Visual Studio , którego nie należy mylić z Visual Studio Code .
— Addison

O. <: ^ | Mój błąd. Ale nie (całkowicie) moja wina. Będę powoływać się na to, że „Microsoft jest liderem w branży w przypadku złych wyborów dotyczących nazewnictwa nowych produktów”. Podobnie jak Google. Czy kiedykolwiek próbowałeś szukać pomocy w Google Messages? [Westchnienie]
— riderBill

70

Kliknij Eksploratora lub inne okno, które nie jest edytorem, a następnie naciśnij Ctrl+ M, jest to polecenie „Przełącz klawisz Tab przenosi fokus” na Skróty klawiaturowe.


2
Czy jest jakiś sposób, aby wyłączyć tę „funkcję”?
— Alexander Ryan Baggett

1
@AlexanderRyanBaggett wystarczy usunąć skrót klawiszowy
— Lamelas84

17

W moim przypadku zastosowałem się do tej porady i zmieniłem to ustawienie emmet w vscode na false:

"emmet.triggerExpansionOnTab": false

Otrzymywałem błąd Cannot read property 'value' of null. Natychmiast rozwiązało problem.


12

Według stanu na grudzień 2018 r. W systemie macOS Mojave 10.14.2 przy użyciu VSCode 1.29.1 domyślne przypisanie klawiszy dla opcji „Przełącz klawisze tabulacji przenosi fokus” ustawione Command+Shift+M . Jeśli utkniesz z tym, użycie tej kombinacji klawiszy powinno rozwiązać problem.

Wykonaj, Command+K Command+Saby otworzyć Ustawienia skrótów klawiszowych, a następnie wyszukaj Toggle Tab Key Moves Focuslub editor.action.toggleTabFocusModejeśli chcesz zmienić kombinację klawiszy.


1
W systemie Windows jest to po prostu Ctrl+Mdomyślnie Toggle Tab Key Moves Focus. I Dan, to odrobinę hiperboliczny, biorąc pod uwagę, że domyślnym formatem dokumentu w Visual Studio jest Ctrl + K, Ctrl + D - visualstudioshortcuts.com/2017
— KymikoLoco

4

Używam kodu na Xfce - wykonałem następujące czynności, aby naprawić zachowanie klawisza Tab:

Plik -> Preferencje -> Ustawienia

wyszukaj „keyboard.dispatch”

skopiuj do prawego panelu i zmień wartość z „code” na „keyCode”

Załaduj ponownie kod


2

Może przeszkadza inny program? Zamknięcie Teamviewer rozwiązało problem dla mnie.


Dla mnie to samo!!! Nigdy nie otwieram TeamViewera i przypadkowo zostawiłem go otwartego. Aby dodać więcej informacji: Miałem uruchomioną inną instancję VS Code, w której karta działała dobrze, podczas gdy w drugiej nie działała. Po zamknięciu TeamViewer karta działa w obu przypadkach!
— Miloš Stanić

2

[Edytuj] Ta odpowiedź dotyczy MSVS (IDE, w przeciwieństwie do VS Code ). Wygląda na to, że Microsoft i Google starają się wybierać mylące nazwy dla nowych produktów. Na razie zostawię tutaj tę odpowiedź, podczas gdy ja (nadal) szukam równoważnego pytania dotyczącego przepełnienia stosu na temat MSVS . Daj mi znać w komentarzach, jeśli uważasz, że powinienem go usunąć. Lub lepiej, wskaż mi wersję MSVS tego pytania.

Ostatnio zainstalowałem MSVS 2017. Żadna z sugestii, które widziałem, nie rozwiązała problemu. Rozwiązanie, które wymyśliłem, działa dla MSVS 2015 i 2017. Dodaj komentarz poniżej, jeśli okaże się, że działa dla innych wersji.

W obszarze Narzędzia -> Opcje -> Edytor tekstu -> C / C ++ -> Formatowanie -> Ogólne, odznacz pole „Automatycznie wcięcie po wpisaniu tabulatora”. Wydaje się to sprzeczne z intuicją, ale rozwiązało to problem. wprowadź opis zdjęcia tutaj


Dziękuję bardzo za tę poprawkę. Naprawdę szlifuje moje narzędzia, gdy oprogramowanie zaczyna uważać się za mądrzejszego od użytkownika - zwłaszcza gdy użytkownik powinien być.
— hidefromkgb

Zapraszamy! W jakiej wersji MSVS działa to rozwiązanie?
— riderBill

1

Upewnij się, że NIE jest zaznaczone:

[] Narzędzia | Opcje | Edytor tekstu | C / C ++ | Formatowanie | Automatyczne wcięcie na karcie

Daj mi znać, jeśli to pomogło!


Czy to jest związane z Visual Studio? Chyba zadaje się pytanie o VS Code.
— Taha Paksu,

1

Dla tych z Was, którzy nie są zainteresowani spacją (- _ -) (- _ -)

  1. Wpisywanie klawiszy ⇥ Tab nie jest ustawione na nic, więc musisz to zrobić ręcznie

  2. Przejdź do Preferencje / Środowisko / Skróty klawiszowe i wyszukaj „ zakładkę ”

  3. Kliknij Edytuj wiązanie u dołu i naciśnij klawisz Tab.

  4. Naciśnij „ Zastosuj ”, a następnie „ Ok ”

  5. Klucz związany!


1

Wszystkie powyższe zawiodły dla mnie. Ale zauważyłem, że shift + ⇥ Tab działał zgodnie z oczekiwaniami (przerywając linię).

Poszukałem więc skrótu „Linia wcięcia” (który został przypisany do alt+ ctrl + cmd + 0), przypisałem go do tabulacji, a teraz znów jestem szczęśliwy.


Następnego ranka edytuj ...

Używam też tabu, aby akceptować sugestie fragmentów, więc ustawiłem „kiedy” w „Wcięcie linii” na editorTextFocus && !editorReadonly && !inSnippetMode && !suggestWidgetVisible.


1
tak, nic powyżej ani poniżej nie działało .. dziękuję
— naftalimich

1

Nazywaj mnie szalonym, ale zdarzyło mi się to również wcześniej, gdy klient TeamViewer przechwytuje klawisz TAB. Nie będziesz o tym wiedział, dopóki nie zamkniesz okna telewizora, które masz otwarte w tle. Dziwne, ale zdarzyło mi się to kilka razy.


-1

Nie jestem pewien, na jakim systemie operacyjnym jesteś, ale był znany problem z klawiszem tab w jednej z nowszych wersji VS Code dla Mac OS X. Błąd został naprawiony w najnowszej wersji (0.10.9).

W systemie Mac OS X można sprawdzić najnowszą aktualizację, otwierając VS Code, a następnie przechodząc do [Kod> Sprawdź aktualizacje].

Źródła i więcej informacji:


Najnowsza aktualizacja nie zrobiła tego dla mnie - ściągnąłem marcową wersję dla znawców i to działało świetnie.
— benkraus
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.