스마트 탭 탐색
VMark의 Tab 및 Shift+Tab 키는 컨텍스트 인식적입니다 — 화살표 키를 누르지 않고도 서식화된 텍스트, 괄호, 링크를 효율적으로 탐색할 수 있습니다.
빠른 개요
| 컨텍스트 | Tab 동작 | Shift+Tab 동작 |
|---|---|---|
괄호 안 () [] {} | 닫는 괄호 건너뛰기 | 여는 괄호 앞으로 이동 |
따옴표 안 "" '' | 닫는 따옴표 건너뛰기 | 여는 따옴표 앞으로 이동 |
CJK 괄호 안 「」 『』 | 닫는 괄호 건너뛰기 | 여는 괄호 앞으로 이동 |
굵게, 기울임꼴, 코드, | 서식 후로 이동 | 서식 전으로 이동 |
| 링크 안 | 링크 후로 이동 | 링크 전으로 이동 |
| 테이블 셀 안 | 다음 셀로 이동 | 이전 셀로 이동 |
| 목록 항목 안 | 항목 들여쓰기 | 항목 내어쓰기 |
괄호 및 따옴표 탈출
커서가 닫는 괄호나 따옴표 바로 앞에 있을 때 Tab을 누르면 건너뜁니다. 커서가 여는 괄호나 따옴표 바로 뒤에 있을 때 Shift+Tab을 누르면 앞으로 이동합니다.
지원되는 문자
표준 괄호 및 따옴표:
- 소괄호:
( ) - 대괄호:
[ ] - 중괄호:
{ } - 큰따옴표:
" " - 작은따옴표:
' ' - 백틱:
`
CJK 괄호:
- 전각 괄호:
( ) - 렌티큘러 괄호:
【 】 - 코너 괄호:
「 」 - 흰색 코너 괄호:
『 』 - 이중 꺾쇠 괄호:
《 》 - 꺾쇠 괄호:
〈 〉
곡선 따옴표:
- 이중 곡선 따옴표:
" " - 단일 곡선 따옴표:
' '
작동 방식
function hello(world|)
↑ ) 앞에 커서Tab 누르기:
function hello(world)|
↑ ) 뒤에 커서이는 중첩된 괄호에서도 작동합니다 — Tab은 바로 인접한 닫는 문자를 건너뜁니다.
Shift+Tab 은 반대 방향으로 작동합니다 — 커서가 여는 문자 바로 뒤에 있는 경우:
function hello(|world)
↑ ( 뒤에 커서Shift+Tab 누르기:
function hello|(world)
↑ ( 앞에 커서CJK 예시
这是「测试|」文字
↑ 」 앞에 커서Tab 누르기:
这是「测试」|文字
↑ 」 뒤에 커서서식 탈출 (WYSIWYG 모드)
WYSIWYG 모드에서 Tab 및 Shift+Tab은 인라인 서식 마크에서 탈출할 수 있습니다.
지원되는 서식
- 굵게 텍스트
- 기울임꼴 텍스트
인라인 코드취소선- 링크
작동 방식
커서가 서식화된 텍스트 어디에 있든:
This is **bold te|xt** here
↑ 굵게 안에 커서Tab 누르기:
This is **bold text**| here
↑ 굵게 후 커서Shift+Tab은 반대 방향으로 작동합니다 — 서식 시작으로 이동합니다:
This is **bold te|xt** here
↑ 굵게 안에 커서Shift+Tab 누르기:
This is |**bold text** here
↑ 굵게 전 커서링크 탈출
Tab 및 Shift+Tab은 링크에서도 탈출합니다:
Check out [VMark|](https://vmark.app)
↑ 링크 텍스트 안에 커서Tab 누르기:
Check out [VMark](https://vmark.app)| and...
↑ 링크 후 커서링크 안에서 Shift+Tab 을 누르면 시작으로 이동합니다:
Check out |[VMark](https://vmark.app) and...
↑ 링크 전 커서링크 탐색 (소스 모드)
소스 모드에서 Tab은 마크다운 링크 구문 내에서 스마트 탐색을 제공합니다.
중첩된 및 이스케이프된 괄호
VMark는 복잡한 링크 구문을 올바르게 처리합니다:
[text [with nested] brackets](url) ✓ 작동
[text \[escaped\] brackets](url) ✓ 작동
[link](https://example.com/page(1)) ✓ 작동Tab 탐색은 중첩되거나 이스케이프된 괄호에서도 링크 경계를 올바르게 식별합니다.
표준 링크
[link text|](url)
↑ 텍스트 안에 커서Tab 누르기 → 커서가 URL로 이동:
[link text](|url)
↑ URL 안에 커서Tab 다시 누르기 → 커서가 링크를 빠져나감:
[link text](url)|
↑ 링크 후 커서위키 링크
[[page name|]]
↑ 링크 안에 커서Tab 누르기:
[[page name]]|
↑ 링크 후 커서소스 모드: 마크다운 문자 탈출
소스 모드에서 Tab은 마크다운 서식 문자를 건너뜁니다:
| 문자 | 사용 용도 |
|---|---|
* | 굵게/기울임꼴 |
_ | 굵게/기울임꼴 |
^ | 위첨자 |
~~ | 취소선 (단위로 건너뜀) |
== | 하이라이트 (단위로 건너뜀) |
예시
This is **bold|** text
↑ ** 앞에 커서Tab 누르기:
This is **bold**| text
↑ ** 후 커서INFO
소스 모드는 마크다운 문자에 대한 Shift+Tab 탈출이 없습니다 — Shift+Tab은 내어쓰기 (선행 공백 제거)만 합니다.
소스 모드: 자동 쌍
소스 모드에서 서식 문자를 입력하면 자동으로 닫는 쌍이 삽입됩니다:
| 문자 | 쌍 | 동작 |
|---|---|---|
* | *|* 또는 **|** | 지연 기반 — 단일 vs 이중 감지를 위해 150ms 대기 |
~ | ~|~ 또는 ~~|~~ | 지연 기반 |
_ | _|_ 또는 __|__ | 지연 기반 |
= | ==|== | 항상 이중으로 쌍 |
` | `|` | 단일 백틱은 지연 후 쌍 |
``` | 코드 펜스 | 줄 시작의 삼중 백틱은 펜스드 코드 블록 생성 |
자동 쌍은 펜스드 코드 블록 안에서 비활성화 됩니다 — 코드 블록에서 *를 입력하면 쌍 없이 리터럴 *이 삽입됩니다.
쌍 사이에서 백스페이스하면 두 반쪽이 모두 삭제됩니다: *\|* → 백스페이스 → 비어 있음.
테이블 탐색
커서가 테이블 안에 있을 때:
| 동작 | 키 |
|---|---|
| 다음 셀 | Tab |
| 이전 셀 | Shift + Tab |
| 행 추가 (마지막 셀에서) | Tab |
마지막 행의 마지막 셀에서 Tab을 누르면 자동으로 새 행이 추가됩니다.
목록 들여쓰기
커서가 목록 항목에 있을 때:
| 동작 | 키 |
|---|---|
| 항목 들여쓰기 | Tab |
| 항목 내어쓰기 | Shift + Tab |
설정
탭 탈출 동작은 설정 → 에디터 에서 사용자 정의할 수 있습니다:
| 설정 | 효과 |
|---|---|
| 괄호 자동 쌍 | 괄호 쌍 및 Tab 탈출 활성화/비활성화 |
| CJK 괄호 | CJK 괄호 쌍 포함 |
| 곡선 따옴표 | 곡선 따옴표 쌍 포함 ("" '') |
TIP
Tab 탈출이 워크플로우와 충돌하는 경우 괄호 자동 쌍을 완전히 비활성화할 수 있습니다. 그러면 Tab이 목록/테이블에서 공백을 삽입하거나 들여쓰기를 수행합니다.
비교: WYSIWYG vs 소스 모드
| 기능 | Tab (WYSIWYG) | Shift+Tab (WYSIWYG) | Tab (소스) | Shift+Tab (소스) |
|---|---|---|---|---|
| 괄호 탈출 | ✓ | ✓ | ✓ | — |
| CJK 괄호 탈출 | ✓ | ✓ | ✓ | — |
| 곡선 따옴표 탈출 | ✓ | ✓ | ✓ | — |
| 마크 탈출 (굵게 등) | ✓ | ✓ | N/A | N/A |
| 링크 탈출 | ✓ | ✓ | ✓ (필드 탐색) | — |
마크다운 문자 탈출 (*, _, ~~, ==) | N/A | N/A | ✓ | — |
마크다운 자동 쌍 (*, ~, _, =) | N/A | N/A | ✓ (지연 기반) | N/A |
| 테이블 탐색 | 다음 셀 | 이전 셀 | N/A | N/A |
| 목록 들여쓰기 | 들여쓰기 | 내어쓰기 | 들여쓰기 | 내어쓰기 |
| 멀티 커서 지원 | ✓ | ✓ | ✓ | — |
| 코드 블록 안에서 건너뜀 | ✓ | ✓ | ✓ | N/A |
멀티 커서 지원
탭 탈출은 여러 커서에서 작동합니다 — 각 커서가 독립적으로 처리됩니다.
작동 방식
여러 커서가 있을 때 Tab 또는 Shift+Tab을 누르면:
- Tab: 서식 안의 커서는 끝으로 탈출; 닫는 괄호 앞의 커서는 건너뜀
- Shift+Tab: 서식 안의 커서는 시작으로 탈출; 여는 괄호 뒤의 커서는 앞으로 이동
- 일반 텍스트의 커서는 그 자리에 유지됨
예시
**bold|** and [link|](url) and plain|
^1 ^2 ^3Tab 누르기:
**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 노드와 인라인 코드 스팬 모두. 이는 괄호가 리터럴 구문인 코드에서 Tab이 괄호를 건너뛰는 것을 방지합니다:
`array[index|]`
↑ Tab이 인라인 코드에서 ] 건너뛰지 않음 — 대신 공백 삽입자동 쌍 삽입도 WYSIWYG 모드와 소스 모드 모두에서 코드 블록 안에서 비활성화됩니다.
팁
근육 기억 — Tab 탈출에 익숙해지면 화살표 키 없이 훨씬 빠르게 탐색할 수 있습니다.
자동 쌍과 함께 작동 —
(를 입력하면 VMark가 자동으로)를 삽입합니다. 안에서 입력한 후 Tab만 누르면 나갑니다.중첩된 구조 — Tab은 한 번에 한 레벨씩 탈출합니다.
((nested))의 경우 완전히 탈출하려면 Tab을 두 번 눌러야 합니다.Shift + Tab — Tab의 거울 이미지. 마크, 링크, 여는 괄호에서 역방향으로 탈출합니다. 테이블에서는 이전 셀로 이동하고, 목록에서는 항목 내어쓰기입니다.
멀티 커서 — Tab 탈출은 모든 커서에 동시에 작동하여 대량 편집을 더욱 빠르게 합니다.