Skip to content

Intelligente Tab-Navigation

VMark's Tab- und Umschalt+Tab-Tasten sind kontextbewusst — sie helfen Ihnen, effizient durch formatierten Text, Klammern und Links zu navigieren, ohne die Pfeiltasten verwenden zu müssen.

Kurzübersicht

KontextTab-AktionUmschalt+Tab-Aktion
Innerhalb von Klammern () [] {}Über schließende Klammer springenVor öffnende Klammer springen
Innerhalb von Anführungszeichen "" ''Über schließendes Anführungszeichen springenVor öffnendes Anführungszeichen springen
Innerhalb von CJK-Klammern 「」 『』Über schließende Klammer springenVor öffnende Klammer springen
Innerhalb von Fett, Kursiv, Code, DurchgestrichenNach der Formatierung springenVor die Formatierung springen
Innerhalb eines LinksNach dem Link springenVor den Link springen
In einer TabellenzelleZur nächsten Zelle wechselnZur vorherigen Zelle wechseln
In einem ListenelementElement einrückenElement ausrücken

Klammern- & Anführungszeichen-Escape

Wenn sich Ihr Cursor direkt vor einer schließenden Klammer oder einem Anführungszeichen befindet, springt Tab darüber. Wenn sich Ihr Cursor direkt nach einer öffnenden Klammer oder einem Anführungszeichen befindet, springt Umschalt+Tab davor zurück.

Unterstützte Zeichen

Standard-Klammern und Anführungszeichen:

  • Runde Klammern: ( )
  • Eckige Klammern: [ ]
  • Geschweifte Klammern: { }
  • Doppelte Anführungszeichen: " "
  • Einfache Anführungszeichen: ' '
  • Backticks: `

CJK-Klammern:

  • Vollbreite Klammern: ( )
  • Linsenförmige Klammern: 【 】
  • Eckige Klammern: 「 」
  • Weiße Eckklammern: 『 』
  • Doppelte Winkelklammern: 《 》
  • Winkelklammern: 〈 〉

Typografische Anführungszeichen:

  • Doppelte geschwungene Anführungszeichen: " "
  • Einfache geschwungene Anführungszeichen: ' '

Funktionsweise

function hello(world|)
                    ↑ Cursor vor )

Tab drücken:

function hello(world)|
                     ↑ Cursor nach )

Dies funktioniert auch mit verschachtelten Klammern — Tab springt über das unmittelbar benachbarte schließende Zeichen.

Umschalt+Tab kehrt die Aktion um — wenn sich der Cursor direkt nach einem öffnenden Zeichen befindet:

function hello(|world)
               ↑ Cursor nach (

Umschalt+Tab drücken:

function hello|(world)
              ↑ Cursor vor (

CJK-Beispiel

这是「测试|」文字
         ↑ Cursor vor 」

Tab drücken:

这是「测试」|文字
          ↑ Cursor nach 」

Formatierungs-Escape (WYSIWYG-Modus)

Im WYSIWYG-Modus können Tab und Umschalt+Tab aus Inline-Formatierungszeichen herausspringen.

Unterstützte Formate

  • Fett Text
  • Kursiv Text
  • Inline-Code
  • Durchgestrichen
  • Links

Funktionsweise

Wenn sich Ihr Cursor irgendwo innerhalb von formatiertem Text befindet:

This is **bold te|xt** here
                 ↑ Cursor innerhalb von Fett

Tab drücken:

This is **bold text**| here
                     ↑ Cursor nach Fett

Umschalt+Tab funktioniert umgekehrt — es springt an den Anfang der Formatierung:

This is **bold te|xt** here
                 ↑ Cursor innerhalb von Fett

Umschalt+Tab drücken:

This is |**bold text** here
        ↑ Cursor vor Fett

Tab und Umschalt+Tab verlassen auch Links:

Check out [VMark|](https://vmark.app)
               ↑ Cursor im Link-Text

Tab drücken:

Check out [VMark](https://vmark.app)| and...
                                    ↑ Cursor nach Link

Umschalt+Tab innerhalb eines Links springt zum Anfang:

Check out |[VMark](https://vmark.app) and...
          ↑ Cursor vor Link

Im Quellmodus bietet Tab eine intelligente Navigation innerhalb der Markdown-Link-Syntax.

Verschachtelte und maskierte Klammern

VMark verarbeitet komplexe Link-Syntax korrekt:

markdown
[text [with nested] brackets](url)     ✓ Funktioniert
[text \[escaped\] brackets](url)       ✓ Funktioniert
[link](https://example.com/page(1))    ✓ Funktioniert

Die Tab-Navigation identifiziert Link-Grenzen korrekt, auch bei verschachtelten oder maskierten Klammern.

markdown
[link text|](url)
          ↑ Cursor im Text

Tab drücken → Cursor bewegt sich zur URL:

markdown
[link text](|url)
            ↑ Cursor in URL

Tab erneut drücken → Cursor verlässt den Link:

markdown
[link text](url)|
                ↑ Cursor nach Link
markdown
[[page name|]]
           ↑ Cursor im Link

Tab drücken:

markdown
[[page name]]|
             ↑ Cursor nach Link

Quellmodus: Markdown-Zeichen-Escape

Im Quellmodus springt Tab auch über Markdown-Formatierungszeichen:

ZeichenVerwendung
*Fett/Kursiv
_Fett/Kursiv
^Hochgestellt
~~Durchgestrichen (als Einheit gesprungen)
==Hervorhebung (als Einheit gesprungen)

Beispiel

markdown
This is **bold|** text
              ↑ Cursor vor **

Tab drücken:

markdown
This is **bold**| text
                ↑ Cursor nach **

INFO

Im Quellmodus gibt es kein Umschalt+Tab-Escape für Markdown-Zeichen — Umschalt+Tab rückt nur aus (entfernt führende Leerzeichen).

Quellmodus: Auto-Paarung

Im Quellmodus wird beim Eingeben eines Formatierungszeichens automatisch sein schließendes Gegenstück eingefügt:

ZeichenPaarungVerhalten
**|* oder **|**Verzögerungsbasiert — wartet 150ms, um einfach vs. doppelt zu erkennen
~~|~ oder ~~|~~Verzögerungsbasiert
__|_ oder __|__Verzögerungsbasiert
===|==Wird immer als doppelt gepaart
``|`Einfacher Backtick wird nach Verzögerung gepaart
```Code-ZaunDreifacher Backtick am Zeilenanfang erstellt einen umzäunten Code-Block

Die Auto-Paarung ist innerhalb von umzäunten Code-Blöcken deaktiviert — das Eingeben von * in einem Code-Block fügt ein wörtliches * ohne Paarung ein.

Rücktaste zwischen einem Paar löscht beide Hälften: *\|* → Rücktaste → leer.

Tabellennavigation

Wenn sich der Cursor innerhalb einer Tabelle befindet:

AktionTaste
Nächste ZelleTab
Vorherige ZelleUmschalt + Tab
Zeile hinzufügen (bei letzter Zelle)Tab

Tab bei der letzten Zelle der letzten Zeile fügt automatisch eine neue Zeile hinzu.

Listeneinrückung

Wenn sich der Cursor in einem Listenelement befindet:

AktionTaste
Element einrückenTab
Element ausrückenUmschalt + Tab

Einstellungen

Das Tab-Escape-Verhalten kann in Einstellungen → Editor angepasst werden:

EinstellungAuswirkung
Klammern auto-paarenKlammern-Paarung und Tab-Escape aktivieren/deaktivieren
CJK-KlammernCJK-Klammerpaare einschließen
Geschwungene AnführungszeichenGeschwungene Anführungszeichen-Paare einschließen ("" '')

TIP

Wenn Tab-Escape Ihrem Arbeitsablauf widerspricht, können Sie die automatische Klammern-Paarung vollständig deaktivieren. Tab fügt dann wie gewohnt Leerzeichen ein (oder rückt in Listen/Tabellen ein).

Vergleich: WYSIWYG vs. Quellmodus

FunktionTab (WYSIWYG)Umschalt+Tab (WYSIWYG)Tab (Quelle)Umschalt+Tab (Quelle)
Klammern-Escape
CJK-Klammern-Escape
Geschwungene Anführungszeichen-Escape
Zeichen-Escape (Fett usw.)Nicht verfügbarNicht verfügbar
Link-Escape✓ (Feldnavigation)
Markdown-Zeichen-Escape (*, _, ~~, ==)Nicht verfügbarNicht verfügbar
Markdown-Auto-Paarung (*, ~, _, =)Nicht verfügbarNicht verfügbar✓ (verzögerungsbasiert)Nicht verfügbar
TabellennavigationNächste ZelleVorherige ZelleNicht verfügbarNicht verfügbar
ListeneinrückungEinrückenAusrückenEinrückenAusrücken
Mehrcursor-Unterstützung
Innerhalb von Code-Blöcken übersprungenNicht verfügbar

Mehrcursor-Unterstützung

Tab-Escape funktioniert mit mehreren Cursorn — jeder Cursor wird unabhängig verarbeitet.

Funktionsweise

Wenn Sie mehrere Cursor haben und Tab oder Umschalt+Tab drücken:

  • Tab: Cursor innerhalb von Formatierungen springen ans Ende; Cursor vor schließenden Klammern springen darüber
  • Umschalt+Tab: Cursor innerhalb von Formatierungen springen zum Anfang; Cursor nach öffnenden Klammern springen davor
  • Cursor im Klartext bleiben an ihrer Position

Beispiel

**bold|** and [link|](url) and plain|
     ^1          ^2            ^3

Tab drücken:

**bold**| and [link](url)| and plain|
        ^1               ^2         ^3

Jeder Cursor springt unabhängig basierend auf seinem Kontext heraus.

TIP

Dies ist besonders leistungsstark für Massenbearbeitungen — wählen Sie mehrere Vorkommen mit Mod + D aus und verwenden Sie dann Tab, um gleichzeitig aus allen herauszuspringen.

Priorität & Code-Block-Verhalten

Escape-Priorität

Wenn mehrere Escape-Ziele überlappen, verarbeitet Tab diese von innen nach außen:

**bold text(|)** here
               ↑ Tab springt ) zuerst (Klammer ist am tiefsten)

Tab erneut drücken:

**bold text()**| here
               ↑ Tab verlässt Fett-Formatierung

Das bedeutet, dass der Klammer-Sprung immer vor dem Formatierungs-Escape ausgeführt wird — Sie können sich darauf verlassen, dass Tab zuerst Klammern verlässt, dann die Formatierung.

Code-Block-Schutz

Tab- und Umschalt+Tab-Klammernsprünge sind innerhalb von Code-Blöcken deaktiviert — sowohl code_block-Knoten als auch Inline-Code-Spans. Dies verhindert, dass Tab in Code über Klammern springt, wo Klammern wörtliche Syntax sind:

`array[index|]`
              ↑ Tab springt ] im Inline-Code NICHT — fügt stattdessen Leerzeichen ein

Die Auto-Paar-Einfügung ist auch innerhalb von Code-Blöcken für WYSIWYG- und Quellmodus deaktiviert.

Tipps

  1. Muskelgedächtnis — Sobald Sie sich an Tab-Escape gewöhnt haben, werden Sie viel schneller navigieren, ohne Pfeiltasten zu verwenden.

  2. Funktioniert mit Auto-Paarung — Wenn Sie ( eingeben, fügt VMark ) automatisch ein. Nachdem Sie darin getippt haben, springt Tab einfach heraus.

  3. Verschachtelte Strukturen — Tab springt eine Ebene nach der anderen heraus. Bei ((verschachtelt)) benötigen Sie zwei Tabs, um vollständig herauszuspringen.

  4. Umschalt + Tab — Der Spiegel von Tab. Springt rückwärts aus Formatierungen, Links und öffnenden Klammern heraus. In Tabellen zur vorherigen Zelle. In Listen rückt es aus.

  5. Mehrcursor — Tab-Escape funktioniert mit allen Ihren Cursorn gleichzeitig und macht Massenbearbeitungen noch schneller.