Visual Studio Code Tab Key fügt keine Registerkarte ein


328

Ich verwende Visual Studio Code als Editor für Unity. Ich habe auf Google gesucht, konnte aber nichts zu meinem Problem finden.

Das Problem ist einfach, das Drücken ⇥ Tabim Editor bewirkt nichts. Ich erwarte, dass es 4 Leerzeichen einfügt.

Weiß jemand, was ich tun kann, um ⇥ Tabwie erwartet zu arbeiten?


es passiert wieder in den Insidern ...
Bruce Lee

8
Ich hatte ein Problem, bei dem die Registerkarte nur außerhalb des Editors angezeigt wurde (Navigieren zwischen UI-Elementen). Durch einen Neustart des Editors wurde das Problem behoben.
Rivenfall

Keine Beantwortung von Op-Fragen, aber für alle anderen, die hier landen, nachdem sie nach "Visual Studio Tab funktioniert nicht" gesucht haben oder Probleme beim Drücken von Tab in Visual Studio haben, wird Block ausgewählt, anstatt Einrückungen hinzuzufügen. Sie können sich auf diese Antwort von Karel Tamayo
Justin Lessard

Antworten:


940

Ich hatte versehentlich einen anderen Modus für die Tabulatortaste aktiviert. Es wurde durch Drücken von Ctrl+ behoben M.

Aus den Visual Studio Code Keybinding-Dokumenten :

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

Der aktuelle Registerkartensteuerungsmodus sollte auch in der Statusleiste angezeigt werden:

Geben Sie hier die Bildbeschreibung ein


28
Ist mir passiert, als ich versucht habe, den Code Collapse ( Ctrl + M, Ctrl + O) zu verwenden. Danke.
interessanter Name hier

3
Was ist Setting Focus ?
Madhu131313

9
Wenn Sie versehentlich Strg + M gedrückt haben, wird in der Statusleiste unten ein hellgrüner "Tab Moves Focus" angezeigt.
Jannunen

3
@Jannunen Sie haben Recht, leider für uns, die 25-Zoll-Bildschirme haben, wird niemand dieses winzige Ding in der Ecke bemerken ...
strwoc

3
aber warum aber?
Hormberg

113

Um das Problem zu beheben

Durch Drücken von ctrl+ verschiebt M die ⇥ Tab Taste den Fokus, anstatt ein ⇥ Tab Zeichen einzufügen .
Schalten Sie es aus, indem Sie die Tastenkombination erneut drücken.

So deaktivieren Sie die Verknüpfung

  1. Öffnen Sie "Tastaturkürzel" mit ctrl+ Kund dann ctrl+ S.
    Oder gehen Sie zu Datei> Einstellungen> Tastaturkürzel .
  2. Suche nach toggle tab key moves focus.
  3. Rechtsklick , Remove Keybinding.

3
Danke dafür! Ich benutze ctrl + m-> ctrl + k-> ctrl + 0um Code zu
reduzieren

Danke Mann, es funktioniert wirklich. Ich habe vergessen, dass ich die Ctrl + mTasten gedrückt habe .
iFart

Ich habe gerade MSVS 2019 installiert. Auf der Registerkarte Datei werden keine Einstellungen angezeigt. Strg-K, Strg-S öffnet eine Liste von Snippets. Ich sehe keine Option zum Umschalten der Tabulatortaste zum Verschieben des Fokus. Welche Version von MSVS verwenden Sie?
RiderBill

1
@riderBill - Dies ist für den neuesten VS-Code 1.39.2 (15.10.2019). Sie verwenden Microsoft Visual Studio , das nicht mit Visual Studio Code verwechselt werden darf .
Addison

Oh. <: ^ | Mein Fehler. Aber nicht (ganz) meine Schuld. Ich werde plädieren: "Microsoft ist ein Branchenführer bei schlechten Entscheidungen für die Benennung neuer Produkte." Wie ist Google. Haben Sie jemals versucht, in Google Messages nach Hilfe zu suchen? [
Seufz

70

Klicken Sie auf den Explorer oder ein anderes Fenster, das nicht der Editor ist, und drücken Sie dann Ctrl+ M. Dies ist der Befehl zum Umschalten der Tabulatortaste, um den Fokus zu verschieben, auf den Tastaturkürzeln.


2
Gibt es eine Möglichkeit, diese "Funktion" zu deaktivieren?
Alexander Ryan Baggett

@AlexanderRyanBaggett entfernen Sie einfach die Schlüsselbindung
Lamelas84

17

In meinem Fall habe ich diesen Rat befolgt und diese Emmet-Einstellung in vscode geändert in false:

"emmet.triggerExpansionOnTab": false

Ich habe den Fehler erhalten Cannot read property 'value' of null. Es löste das Problem sofort.


12

Ab Dezember 2018 unter macOS Mojave 10.14.2 unter Verwendung von VSCode 1.29.1 ist die Standardtastenbindung für "Fokus umschalten der Tabulatortaste" auf "Fokus verschieben" eingestellt Command+Shift+M. Wenn Sie damit nicht weiterkommen, sollte das Problem durch die Verwendung dieser Tastenkombination behoben werden.

Haben Command+K Command+Sdie Hotkeys Einstellungen nach oben zu ziehen und dann suchen Toggle Tab Key Moves Focusoder editor.action.toggleTabFocusModeob Sie die Tastenkombination ändern möchten.


1
Unter Windows ist dies nur Ctrl+Mstandardmäßig der Fall Toggle Tab Key Moves Focus. Und Dan, das ist ein bisschen hyperbolisch, wenn man bedenkt, dass die Standardeinstellung in Visual Studio zum Formatieren eines Dokuments tatsächlich Strg + K, Strg + D ist - visualstudioshortcuts.com/2017
KymikoLoco

4

Ich verwende Code auf xfce - habe Folgendes getan, um das Verhalten der Tabulatortaste zu korrigieren :

Datei -> Einstellungen -> Einstellungen

Suche nach "keyboard.dispatch"

Kopieren Sie in das rechte Feld und ändern Sie den Wert von "Code" in "KeyCode".

Code neu laden


2

Vielleicht stört ein anderes Programm? Das Schließen von Teamviewer hat das Problem für mich behoben.


Auch für mich!!! Ich habe nie einen TeamViewer geöffnet und ihn versehentlich offen gelassen. So fügen Sie weitere Informationen hinzu: Ich hatte eine andere Instanz von VS Code ausgeführt, und darin funktionierte die Registerkarte einwandfrei, während auf der anderen Registerkarte nicht funktionierte. Nach dem Schließen von TeamViewer funktioniert die Registerkarte in beiden Fällen!
Miloš Stanić

2

[Bearbeiten] Diese Antwort gilt für MSVS (die IDE im Gegensatz zu VS Code ). Microsoft und Google geben sich anscheinend alle Mühe, verwirrende Namen für neue Produkte zu wählen. Ich werde diese Antwort vorerst hier lassen, während ich (weiterhin) nach der entsprechenden Stackoverflow-Frage zu MSVS suche . Lassen Sie mich in den Kommentaren wissen, wenn Sie denken, ich sollte es löschen. Oder besser, verweisen Sie mich auf die MSVS- Version dieser Frage.

Ich habe kürzlich MSVS 2017 installiert. Keiner der Vorschläge, die ich gesehen habe, hat das Problem behoben. Die Lösung, die ich herausgefunden habe, funktioniert für MSVS 2015 und 2017. Fügen Sie unten einen Kommentar hinzu, wenn Sie feststellen, dass sie für andere Versionen funktioniert.

Deaktivieren Sie unter Extras -> Optionen -> Texteditor -> C / C ++ -> Formatierung -> Allgemein das Kontrollkästchen "Beim Eingeben einer Registerkarte automatisch einrücken". Es scheint nicht intuitiv zu sein, aber es hat das Problem für mich behoben. Geben Sie hier die Bildbeschreibung ein


Vielen Dank für dieses Update. Es macht mir wirklich zu schaffen, wenn sich eine Software als schlauer als der Benutzer betrachtet - besonders wenn der Benutzer es sein soll.
hidefromkgb

Bitte schön! In welchen Versionen von MSVS funktioniert diese Lösung für Sie?
FahrerBill

Es ist MSVS 2017, habe es 2015 noch nicht versucht.
hidefromkgb

1

Stellen Sie sicher, dass dies NICHT aktiviert ist:

[] Werkzeuge | Optionen | Texteditor | C / C ++ | Formatierung | Automatische Einrückung auf der Registerkarte

Lassen Sie mich wissen, ob dies geholfen hat!


Hat das etwas mit Visual Studio zu tun? Die Frage wird wohl nach VS Code gestellt.
Taha Paksu

1

Für diejenigen von euch, die nicht über das Leben in der Leertaste sprechen (- _ -) (- _ -)

  1. Die Tastenkombination für ⇥ Tab ist auf nichts festgelegt, daher müssen Sie sie manuell ausführen

  2. Navigieren Sie zu Einstellungen / Umgebung / Tastenkombinationen und suchen Sie nach " Registerkarte ".

  3. Klicken Sie unten auf Bindung bearbeiten und drücken Sie die Tabulatortaste.

  4. Drücken Sie " Übernehmen " und dann " OK ".

  5. Schlüssel gebunden!


1

Nennen Sie mich verrückt, aber das ist mir auch schon passiert, als der TeamViewer-Client den TAB-Schlüssel entführt. Sie werden es nicht wissen, bis Sie das TV-Fenster schließen, das Sie im Hintergrund geöffnet haben. Seltsam, aber es ist mir ein paar Mal passiert.


0

All das ist für mich gescheitert. Aber ich bemerkte shift + ⇥ Tab arbeitete wie erwartet (übertroffen die Linie).

Also habe ich nach der Verknüpfung "Einrückungslinie" gesucht (die alt+ ctrl + cmd + 0zugewiesen wurde), sie der Registerkarte zugewiesen und bin jetzt wieder glücklich.


Am nächsten Morgen bearbeiten ...

Ich verwende auch die Registerkarte, um Snippet-Vorschläge zu akzeptieren, daher habe ich das "Wann" von "Einrückungslinie" auf gesetzt editorTextFocus && !editorReadonly && !inSnippetMode && !suggestWidgetVisible.


-1

Sie sind sich nicht sicher, auf welchem ​​Betriebssystem Sie sich befinden, aber es gab ein bekanntes Problem mit der Tabulatortaste in einer der neueren Versionen von VS Code für Mac OS X. Der Fehler wurde in der neuesten Version (0.10.9) behoben.

Unter Mac OS X können Sie nach dem neuesten Update suchen, indem Sie VS Code öffnen und dann zu [Code> Nach Updates suchen] wechseln.

Quellen und weitere Informationen:


Das neueste Update hat es nicht für mich getan - ich habe die Insider-Veröffentlichung vom März gezogen und das hat großartig funktioniert.
Benkraus
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.