智慧 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 boldShift+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 可正確處理複雜的連結語法:
[text [with nested] brackets](url) ✓ 支援
[text \[escaped\] brackets](url) ✓ 支援
[link](https://example.com/page(1)) ✓ 支援即使含有巢狀或跳脫括號,Tab 導覽也能正確識別連結邊界。
標準連結
[link text|](url)
↑ cursor in text按下 Tab → 游標移至 URL:
[link text](|url)
↑ cursor in URL再次按下 Tab → 游標離開連結:
[link text](url)|
↑ cursor after linkWiki 連結
[[page name|]]
↑ cursor in link按下 Tab:
[[page name]]|
↑ cursor after link原始碼模式:Markdown 字元跳脫
在原始碼模式中,Tab 也可跳過 Markdown 格式字元:
| 字元 | 用途 |
|---|---|
* | 粗體/斜體 |
_ | 粗體/斜體 |
^ | 上標 |
~~ | 刪除線(整體跳過) |
== | 高亮(整體跳過) |
範例
This is **bold|** text
↑ cursor before **按下 Tab:
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/A | N/A |
| 連結跳脫 | ✓ | ✓ | ✓(欄位導覽) | — |
Markdown 字元跳脫(*、_、~~、==) | N/A | N/A | ✓ | — |
Markdown 自動配對(*、~、_、=) | N/A | N/A | ✓(延遲偵測) | N/A |
| 表格導覽 | 下一個儲存格 | 上一個儲存格 | N/A | N/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 不會在行內程式碼中跳 ] — 而是插入空格在所見即所得和原始碼模式中,程式碼區塊內的自動配對插入同樣停用。
技巧
肌肉記憶 — 一旦習慣 Tab 跳脫,你會發現無需方向鍵就能導覽得更快。
搭配自動配對 — 輸入
(時,VMark 會自動插入)。輸入完內容後,直接按 Tab 跳出。巢狀結構 — Tab 每次只跳脫一層。對於
((nested)),需要按兩次 Tab 才能完全跳出。Shift + Tab — Tab 的鏡像操作。從格式標記、連結和左括號向前跳脫。在表格中移至上一個儲存格,在清單中取消縮排。
多重游標 — Tab 跳脫同時作用於所有游標,讓批次編輯更加高效。