워크스페이스 레일
실험적 기능
워크스페이스 레일은 실험적 기능이며 기본적으로 꺼져 있습니다. 설정 → 파일 및 이미지 → 워크스페이스 → 워크스페이스 레일에서 켜세요. 레일이 꺼져 있으면 VMark는 이전과 똑같이 동작합니다 — 창 하나에 워크스페이스 하나입니다.
워크스페이스 레일을 사용하면 한 창에 여러 워크스페이스를 동시에 둘 수 있으며, 이들은 왼쪽 가장자리에 색이 있는 글리프의 세로 띠로 표시됩니다. 워크스페이스를 클릭하면 전체 컨텍스트 전환이 일어납니다: 에디터 탭, 사이드바 파일 트리, 분할 창 레이아웃, 사이드바/개요 상태가 모두 그 워크스페이스의 것으로 바뀝니다 — 단순히 필터를 바꾸는 것이 아니라, 브라우저에서 Spaces를 전환하는 것과 같습니다.
전환되는 것과 유지되는 것
| 영역 | 레일 전환 시 |
|---|---|
| 에디터 탭 스트립 | 활성 워크스페이스의 탭(과 브라우저 페이지)만 표시 |
| 사이드바 파일 트리 | 활성 워크스페이스를 루트로 다시 설정하며, 폴더 열림 상태와 스크롤 상태도 워크스페이스별로 유지 |
| 분할 창 | 각 워크스페이스가 자체 분할 레이아웃을 기억 |
| 개요 | 탭별 접기/필터/스크롤 상태가 워크스페이스를 따라감 |
| 다음/이전 탭, 탭 컨텍스트 메뉴, 빠른 열기의 "열린 탭" | 활성 워크스페이스로 범위 제한 |
| 닫은 탭 다시 열기 | 닫은 탭은 워크스페이스별로(그리고 공유 브라우저 범위 하나에) 기록되며, 파일 → 닫은 탭 다시 열기, 명령 팔레트, 또는 설정 → 단축키에서 지정한 단축키로 가장 최근 것부터 다시 엽니다(주변 조합 키가 이미 사용 중이어서 기본으로는 지정되어 있지 않습니다). 다시 연 문서는 디스크에서 새로 읽으므로 파일의 현재 상태를 보여 줍니다. 파일이 이동되었거나 삭제되었다면 탭은 복원되지 않고 그 이유를 알리는 알림이 표시됩니다. 제목 없는 탭은 빈 상태로 다시 열립니다. 저장하지 않은 편집은 복구되지 않습니다 — 변경된 탭을 닫을 때 이미 저장할지 물었기 때문입니다 |
| 브라우저 페이지 | 창 전역 — 모든 워크스페이스에서 접근 가능 |
| 최근 파일 / 최근 워크스페이스 메뉴 | 전역 |
| 자동 저장, 저장 확인, 파일 감시 | 숨겨져 있든 아니든 모든 탭에 적용 |
전환은 아무것도 닫지 않습니다: 숨겨진 워크스페이스의 탭은 백그라운드에서 열린 채로 자동 저장을 계속하며, 저장하지 않은 변경 사항이 있는 상태로 창을 닫으면 여전히 저장 확인을 받습니다.
독립 파일
모든 워크스페이스 루트 바깥에서 연 파일은 가상의 독립 파일 항목(겹친 파일 아이콘)에 속합니다. 이 항목으로 전환하면 해당 탭들이 표시되며, 필요할 때 자동으로 나타납니다.
워크스페이스 간 파일 이동
소유권은 파일 경로를 따릅니다:
- 다른 워크스페이스의 폴더로 다른 이름으로 저장하면 탭이 그곳으로 이동합니다 — 그리고 보고 있던 탭이라면 보이는 워크스페이스도 함께 따라갑니다.
- 디스크에서의 이름 변경이나 이동(Finder에서 한 것 포함)도 같은 방식으로 탭의 소속을 옮깁니다.
- 숨겨진 워크스페이스에 속한 파일을 (빠른 열기, 최근 항목, 파일 대화 상자로) 열면 먼저 그 워크스페이스로 전환하므로, 요청한 탭이 곧 보이는 탭이 됩니다.
세션과 재시작
각 워크스페이스의 구성은 자신의 탭만과 분할 레이아웃을 기억합니다. 사람이 연 브라우저 페이지는 창별로 유지됩니다. 핫 종료는 창의 모든 워크스페이스를 복원하며 — 워크스페이스별 사이드바 상태와 기록된 닫은 탭 내역을 포함해 — 사용하던 워크스페이스를 다시 활성화합니다.
AI (MCP) 동작
MCP로 문서를 여는 AI 클라이언트는 보이는 워크스페이스를 절대 강제로 바꾸지 않습니다: workspace.open은 백그라운드 탭을 만들고 이후 문서 호출에 쓸 tabId를 반환합니다. 보이는 화면을 바꾸는 것은 명시적인 workspace.switch_tab 액션뿐이며, 그 응답에는 workspaceSwitched: true가 포함되어 AI가 전환이 일어났음을 알려 줄 수 있습니다. MCP 도구 참조를 참조하세요.
레일 동작
| 동작 | 방법 |
|---|---|
| 워크스페이스 전환 | 해당 글리프 클릭 |
| 워크스페이스 추가 | 파일 > 워크스페이스 열기(이미 레일에 있는 폴더라면 중복으로 추가하지 않고 그 워크스페이스로 전환) |
| 순서 변경 | 글리프를 다른 글리프 위로 드래그 |
| 별도의 창으로 이동 | 글리프를 창 밖으로 드래그 |
| 새 창으로 복제 | 마우스를 올리면 나타나는 ⧉ 버튼 |
| 워크스페이스 닫기 | 오른쪽 클릭 → 닫기. 고정된 탭을 포함해 모든 탭이 함께 닫힙니다. 변경 사항이 있는 탭은 각각 먼저 확인하며, 취소하면 워크스페이스는 그대로 남습니다 |
터미널 세션
레일의 각 워크스페이스는 자체 터미널 세션을 가집니다. 레일을 전환하면 보이는 터미널 탭이 바뀌며, 숨겨진 워크스페이스의 셸은 건드리지 않은 채 계속 실행됩니다 — 바쁘든 유휴 상태든 cd가 입력되지 않습니다 — 다시 전환하면 같은 셸이 나타나고, 보고 있던 세션도 워크스페이스별로 기억됩니다. 새 세션(+ 버튼, "여기서 터미널 열기", "터미널에서 실행")은 활성 워크스페이스에 만들어지고 그 루트에서 시작합니다. 워크스페이스를 닫거나 별도의 창으로 옮기면 그 세션도 함께 닫힙니다. 자세한 내용은 터미널 가이드를 참조하세요.
알려진 제한 사항
macOS에서는 대소문자만 다른 같은 폴더의 두 가지 표기(대소문자를 구분하지 않는 볼륨에서 가능)가 서로 다른 워크스페이스로 취급됩니다. 이는 의도된 동작입니다: 워크스페이스 식별은 macOS와 Linux에서는 바이트 단위로 정확하게, Windows에서는 대소문자를 무시하고 이루어집니다.