Skip to content

智慧 Tab 導覽

VMark 的 Tab 和 Shift+Tab 鍵具有情境感知功能 — 可幫助你在格式化文字、括號和連結之間高效導覽,無需切換到方向鍵。

快速概覽

情境Tab 操作Shift+Tab 操作
位於括號 () [] {}跳過右括號跳至左括號之前
位於引號 "" ''跳過右引號跳至左引號之前
位於中日韓文括號 「」 『』跳過右括號跳至左括號之前
位於 粗體斜體程式碼刪除線跳至格式之後跳至格式之前
位於連結內跳至連結之後跳至連結之前
位於表格儲存格內移至下一個儲存格移至上一個儲存格
位於清單項目內增加縮排減少縮排

括號與引號跳脫

當游標恰好位於右括號或引號之前時,按下 Tab 即可跳過。當游標恰好位於左括號或引號之後時,按下 Shift+Tab 即可跳回其前方。

支援的字元

標準括號與引號:

  • 小括號:( )
  • 方括號:[ ]
  • 大括號:{ }
  • 雙引號:" "
  • 單引號:' '
  • 反引號:`

中日韓文括號:

  • 全形括號:( )
  • 方頭括號:【 】
  • 角括號:「 」
  • 白角括號:『 』
  • 雙書名號:《 》
  • 單書名號:〈 〉

彎引號:

  • 雙彎引號:" "
  • 單彎引號:' '

運作原理

function hello(world|)
                    ↑ cursor before )

按下 Tab

function hello(world)|
                     ↑ cursor after )

巢狀括號同樣適用 — Tab 只跳過緊鄰的右括號字元。

按下 Shift+Tab 執行反向操作 — 若游標緊跟在左括號之後:

function hello(|world)
               ↑ cursor after (

按下 Shift+Tab

function hello|(world)
              ↑ cursor before (

中日韓文範例

这是「测试|」文字
         ↑ cursor before 」

按下 Tab

这是「测试」|文字
          ↑ cursor after 」

格式跳脫(所見即所得模式)

在所見即所得模式中,Tab 和 Shift+Tab 可以跳出行內格式標記。

支援的格式

  • 粗體 文字
  • 斜體文字
  • 行內程式碼
  • 刪除線
  • 連結

運作原理

當游標位於格式化文字內任意位置時:

This is **bold te|xt** here
                 ↑ cursor inside bold

按下 Tab

This is **bold text**| here
                     ↑ cursor after bold

Shift+Tab 執行反向操作 — 跳至格式的起始位置:

This is **bold te|xt** here
                 ↑ cursor inside bold

按下 Shift+Tab

This is |**bold text** here
        ↑ cursor before bold

連結跳脫

Tab 和 Shift+Tab 同樣可以跳出連結:

Check out [VMark|](https://vmark.app)
               ↑ cursor inside link text

按下 Tab

Check out [VMark](https://vmark.app)| and...
                                    ↑ cursor after link

在連結內按下 Shift+Tab 可移至起始位置:

Check out |[VMark](https://vmark.app) and...
          ↑ cursor before link

連結導覽(原始碼模式)

在原始碼模式中,Tab 可在 Markdown 連結語法的各欄位之間進行智慧導覽。

巢狀與跳脫括號

VMark 可正確處理複雜的連結語法:

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

即使含有巢狀或跳脫括號,Tab 導覽也能正確識別連結邊界。

標準連結

markdown
[link text|](url)
          ↑ cursor in text

按下 Tab → 游標移至 URL:

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

再次按下 Tab → 游標離開連結:

markdown
[link text](url)|
                ↑ cursor after link

Wiki 連結

markdown
[[page name|]]
           ↑ cursor in link

按下 Tab

markdown
[[page name]]|
             ↑ cursor after link

原始碼模式:Markdown 字元跳脫

在原始碼模式中,Tab 也可跳過 Markdown 格式字元:

字元用途
*粗體/斜體
_粗體/斜體
^上標
~~刪除線(整體跳過)
==高亮(整體跳過)

範例

markdown
This is **bold|** text
              ↑ cursor before **

按下 Tab

markdown
This is **bold**| text
                ↑ cursor after **

INFO

原始碼模式不支援 Shift+Tab 跳脫 Markdown 字元 — Shift+Tab 只執行取消縮排(移除前導空格)。

原始碼模式:自動配對

在原始碼模式中,輸入格式字元時會自動插入對應的右側配對:

字元配對行為
**|***|**延遲偵測 — 等待 150ms 以判斷單還是雙
~~|~~~|~~延遲偵測
__|___|__延遲偵測
===|==始終配對為雙
``|`單反引號延遲後配對
```程式碼圍欄行首的三個反引號建立圍欄程式碼區塊

自動配對在 圍欄程式碼區塊內停用 — 在程式碼區塊中輸入 * 只插入字面 *,不進行配對。

在配對之間按 Backspace 會同時刪除兩側:*\|* → Backspace → 空白。

表格導覽

游標位於表格內時:

操作按鍵
下一個儲存格Tab
上一個儲存格Shift + Tab
新增列(在最後一個儲存格時)Tab

在最後一列的最後一個儲存格按 Tab 會自動新增一列。

清單縮排

游標位於清單項目內時:

操作按鍵
增加縮排Tab
減少縮排Shift + Tab

設定

Tab 跳脫行為可在 設定 → 編輯器 中自訂:

設定效果
自動配對括號啟用/停用括號配對與 Tab 跳脫
中日韓文括號包含中日韓文括號配對
彎引號包含彎引號配對("" ''

TIP

如果 Tab 跳脫與你的工作流程有衝突,可以完全停用自動配對括號。Tab 之後將正常插入空格(或在清單/表格中執行縮排)。

比較:所見即所得 vs 原始碼模式

功能Tab(所見即所得)Shift+Tab(所見即所得)Tab(原始碼)Shift+Tab(原始碼)
括號跳脫
中日韓文括號跳脫
彎引號跳脫
格式標記跳脫(粗體等)N/AN/A
連結跳脫✓(欄位導覽)
Markdown 字元跳脫(*_~~==N/AN/A
Markdown 自動配對(*~_=N/AN/A✓(延遲偵測)N/A
表格導覽下一個儲存格上一個儲存格N/AN/A
清單縮排縮排取消縮排縮排取消縮排
多重游標支援
程式碼區塊內停用N/A

多重游標支援

Tab 跳脫支援多重游標 — 每個游標獨立處理。

運作原理

當你有多個游標並按下 Tab 或 Shift+Tab 時:

  • Tab:位於格式內的游標跳至結尾;位於右括號前的游標跳過該字元
  • Shift+Tab:位於格式內的游標跳至起始;位於左括號後的游標跳至其前方
  • 位於一般文字中的游標保持不動

範例

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

按下 Tab

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

每個游標根據所在情境獨立跳脫。

TIP

此功能在批次編輯時特別強大 — 使用 Mod + D 選取多個符合項目,再用 Tab 一次從所有位置跳脫。

優先順序與程式碼區塊行為

跳脫優先順序

當多個跳脫目標重疊時,Tab 以 由內而外 的順序處理:

**bold text(|)** here
               ↑ Tab 先跳 )(括號是最內層)

再次按下 Tab

**bold text()**| here
               ↑ Tab 跳脫粗體標記

這意味著括號跳脫始終優先於格式標記跳脫 — 你可以依賴 Tab 先跳出括號,再跳出格式。

程式碼區塊防護

Tab 和 Shift+Tab 括號跳脫在 程式碼區塊內停用 — 包括 code_block 節點和行內程式碼 span。這可防止 Tab 跳過程式碼中的括號(程式碼中的括號是字面語法):

`array[index|]`
              ↑ Tab 不會在行內程式碼中跳 ] — 而是插入空格

在所見即所得和原始碼模式中,程式碼區塊內的自動配對插入同樣停用。

技巧

  1. 肌肉記憶 — 一旦習慣 Tab 跳脫,你會發現無需方向鍵就能導覽得更快。

  2. 搭配自動配對 — 輸入 ( 時,VMark 會自動插入 )。輸入完內容後,直接按 Tab 跳出。

  3. 巢狀結構 — Tab 每次只跳脫一層。對於 ((nested)),需要按兩次 Tab 才能完全跳出。

  4. Shift + Tab — Tab 的鏡像操作。從格式標記、連結和左括號向前跳脫。在表格中移至上一個儲存格,在清單中取消縮排。

  5. 多重游標 — Tab 跳脫同時作用於所有游標,讓批次編輯更加高效。