AI 지니
AI 지니는 AI를 사용하여 텍스트를 변환하는 프롬프트 템플릿입니다. 텍스트를 선택하고, 지니를 호출한 다음, 에디터를 벗어나지 않고 제안된 변경사항을 검토합니다.
빠른 시작
- 설정 > 통합 에서 AI 제공자를 구성합니다 (AI 제공자 참조)
- 에디터에서 일부 텍스트를 선택합니다
Mod + Y를 눌러 지니 선택기를 엽니다- 지니를 선택하거나 자유형 프롬프트를 입력합니다
- 인라인 제안을 검토합니다 — 수락 또는 거부
지니 선택기
Mod + Y (또는 메뉴 도구 > AI 지니)를 눌러 단일 통합 입력이 있는 스포트라이트 스타일 오버레이를 엽니다.
검색 및 자유형 — 타이핑하여 이름, 설명 또는 카테고리로 지니를 필터링합니다. 일치하는 지니가 없으면 입력이 자유형 프롬프트 필드가 됩니다.
빠른 칩 — 범위가 "선택"이고 입력이 비어 있을 때 일반적인 동작에 대한 원클릭 버튼이 나타납니다 (다듬기, 요약, 문법, 다시 표현).
2단계 자유형 — 지니가 일치하지 않을 때 Enter를 한 번 눌러 확인 힌트를 보고, 그 다음 Enter를 다시 눌러 AI 프롬프트로 제출합니다. 이렇게 하면 우발적인 제출을 방지합니다.
범위 순환 — Tab을 눌러 범위를 순환합니다: 선택 → 블록 → 문서 → 전체.
프롬프트 히스토리 — 자유형 모드 (일치하는 지니 없음)에서 ArrowUp / ArrowDown을 눌러 이전 프롬프트를 순환합니다. Ctrl + R을 눌러 검색 가능한 히스토리 드롭다운을 엽니다. 유령 텍스트는 회색 힌트로 가장 최근의 일치하는 프롬프트를 표시합니다 — Tab을 눌러 수락합니다.
처리 피드백
지니를 선택하거나 자유형 프롬프트를 제출한 후 선택기에 인라인 피드백이 표시됩니다:
- 처리 중 — 경과 시간 카운터가 있는 생각 표시기.
Escape를 눌러 취소합니다. - 미리보기 — AI 응답이 실시간으로 스트리밍됩니다.
수락을 사용하여 적용하거나거부를 사용하여 버립니다. - 오류 — 문제가 발생하면
다시 시도버튼과 함께 오류 메시지가 나타납니다.
상태 표시줄에도 AI 진행 상황이 표시됩니다 — 실행 중에는 경과 시간이 있는 회전 아이콘, 성공 시에는 짧은 "완료" 플래시, 또는 재시도/무시 버튼이 있는 오류 표시기. AI가 활성 상태이면 F7로 숨겼더라도 상태 표시줄이 자동으로 표시됩니다.
내장 지니
VMark는 네 가지 카테고리에 걸쳐 13개의 지니를 제공합니다:
편집
| 지니 | 설명 | 범위 |
|---|---|---|
| 다듬기 | 명확성과 흐름을 개선 | 선택 |
| 요약 | 텍스트를 더 간결하게 만들기 | 선택 |
| 문법 수정 | 문법 및 철자 수정 | 선택 |
| 단순화 | 더 쉬운 언어 사용 | 선택 |
창의
| 지니 | 설명 | 범위 |
|---|---|---|
| 확장 | 아이디어를 더 완전한 문장으로 발전 | 선택 |
| 다시 표현 | 같은 내용을 다르게 표현 | 선택 |
| 생동감 | 감각적 세부 사항과 이미지 추가 | 선택 |
| 이어쓰기 | 여기서 글 계속 쓰기 | 블록 |
구조
| 지니 | 설명 | 범위 |
|---|---|---|
| 요약 | 문서 요약 | 문서 |
| 개요 | 개요 생성 | 문서 |
| 제목 | 제목 옵션 제안 | 문서 |
도구
| 지니 | 설명 | 범위 |
|---|---|---|
| 번역 | 영어로 번역 | 선택 |
| 영어로 다시 쓰기 | 텍스트를 영어로 다시 작성 | 선택 |
범위
각 지니는 세 가지 범위 중 하나에서 작동합니다:
- 선택 — 강조 표시된 텍스트. 선택된 것이 없으면 현재 블록으로 대체됩니다.
- 블록 — 커서 위치의 단락 또는 블록 요소.
- 문서 — 전체 문서 콘텐츠.
범위는 AI에 로 추출되어 전달되는 텍스트를 결정합니다.
TIP
범위가 선택 이지만 선택된 것이 없으면 지니는 현재 단락에서 작동합니다.
제안 검토
지니가 실행된 후 제안이 인라인으로 나타납니다:
- 교체 — 취소선이 있는 원본 텍스트, 녹색의 새 텍스트
- 삽입 — 소스 블록 뒤에 녹색으로 표시된 새 텍스트
- 삭제 — 취소선이 있는 원본 텍스트
각 제안에는 수락 (체크마크) 및 거부 (X) 버튼이 있습니다.
키보드 단축키
| 동작 | 단축키 |
|---|---|
| 제안 수락 | Enter |
| 제안 거부 | Escape |
| 다음 제안 | Tab |
| 이전 제안 | Shift + Tab |
| 모두 수락 | Mod + Shift + Enter |
| 모두 거부 | Mod + Shift + Escape |
상태 표시줄 표시기
AI가 생성 중일 때 상태 표시줄에 경과 시간 카운터가 있는 회전하는 반짝이 아이콘이 표시됩니다 ("생각 중... 3초"). 취소 버튼 (×)으로 요청을 중지할 수 있습니다.
완료 후 짧은 "완료" 체크마크가 3초 동안 깜박입니다. 오류가 발생하면 상태 표시줄에 재시도 및 무시 버튼과 함께 오류 메시지가 표시됩니다.
AI가 활성 상태 (실행 중, 오류 또는 성공)이면 F7로 숨겼더라도 상태 표시줄이 자동으로 표시됩니다.
사용자 정의 지니 작성
직접 지니를 만들 수 있습니다. 각 지니는 YAML 프론트매터와 프롬프트 템플릿이 있는 단일 마크다운 파일입니다.
지니 저장 위치
지니는 애플리케이션 데이터 디렉토리에 저장됩니다:
| 플랫폼 | 경로 |
|---|---|
| macOS | ~/Library/Application Support/com.vmark.app/genies/ |
| Windows | %APPDATA%\com.vmark.app\genies\ |
| Linux | ~/.local/share/com.vmark.app/genies/ |
메뉴 도구 > 지니 폴더 열기 에서 이 폴더를 엽니다.
디렉토리 구조
하위 디렉토리는 선택기에서 카테고리 가 됩니다. 원하는 대로 지니를 구성할 수 있습니다:
genies/
├── editing/
│ ├── polish.md
│ ├── condense.md
│ └── fix-grammar.md
├── creative/
│ ├── expand.md
│ └── rephrase.md
├── academic/ ← 사용자 정의 카테고리
│ ├── cite.md
│ └── abstract.md
└── my-workflows/ ← 다른 사용자 정의 카테고리
└── blog-intro.md파일 형식
모든 지니 파일에는 프론트매터 (메타데이터)와 템플릿 (프롬프트)의 두 부분이 있습니다.
---
description: 명확성과 흐름을 개선
scope: selection
category: editing
---
당신은 전문 편집자입니다. 저자의 목소리와 의도를 유지하면서
다음 텍스트의 명확성, 흐름, 간결성을 개선하세요.
개선된 텍스트만 반환하세요 — 설명 없이.
{{content}}파일명 polish.md는 선택기에서 표시 이름 "Polish"가 됩니다.
프론트매터 필드
| 필드 | 필수 여부 | 값 | 기본값 |
|---|---|---|---|
description | 아니요 | 선택기에 표시되는 짧은 설명 | 비어 있음 |
scope | 아니요 | selection, block, document | selection |
category | 아니요 | 그룹화를 위한 카테고리 이름 | 하위 디렉토리 이름 |
action | 아니요 | replace, insert | replace |
context | 아니요 | 1, 2 | 0 (없음) |
model | 아니요 | 제공자 기본값을 재정의하는 모델 식별자 | 제공자 기본값 |
지니 이름 — 표시 이름은 항상 파일 이름 (.md 없이)에서 파생됩니다. 예를 들어 fix-grammar.md는 선택기에서 "Fix Grammar"로 나타납니다. 파일 이름을 변경하여 표시 이름을 변경합니다.
플레이스홀더
플레이스홀더는 모든 지니의 핵심입니다. 지니가 실행될 때 VMark는:
- 범위를 기반으로 텍스트를 추출 합니다 (선택된 텍스트, 현재 블록 또는 전체 문서)
- 템플릿의 모든
를 추출된 텍스트로 교체 합니다 - 채워진 프롬프트를 활성 AI 제공자에게 전송 합니다
- 응답을 인라인 제안으로 다시 스트리밍 합니다
플레이스홀더
플레이스홀더는 AI에게 읽기 전용 주변 텍스트를 제공합니다 — 따라서 수정하지 않고 인근 블록의 어조, 스타일, 구조를 맞출 수 있습니다.
작동 방식:
- 프론트매터에서
context: 1또는context: 2를 설정하여 ±1 또는 ±2 인근 블록을 포함 - 주변 텍스트를 삽입할 위치에 템플릿에서
사용 - AI는 컨텍스트를 보지만 제안은
만 교체합니다
action 필드
기본적으로 지니는 소스 텍스트를 AI 출력으로 교체 합니다. action: insert를 설정하면 소스 블록 뒤에 출력을 추가 합니다.
편집, 재표현, 번역, 문법 수정 등 원본 텍스트를 변환하는 모든 것에 replace를 사용합니다.
이어쓰기, 콘텐츠 아래에 요약 생성, 주석 추가 등 원본을 제거하지 않고 새 텍스트를 추가하는 것에 insert를 사용합니다.
model 필드
특정 지니의 기본 모델을 재정의합니다. 간단한 작업에는 더 저렴한 모델을, 복잡한 작업에는 더 강력한 모델을 원할 때 유용합니다.
---
description: 빠른 문법 수정 (빠른 모델 사용)
scope: selection
model: claude-haiku-4-5-20251001
---
문법 및 철자 오류를 수정합니다. 수정된 텍스트만 반환합니다.
{{content}}효과적인 프롬프트 작성
출력 형식에 대해 구체적으로
AI가 무엇을 반환할지 정확히 알려주세요. 이 없이는 모델이 설명, 헤더 또는 주석을 추가하는 경향이 있습니다.
<!-- 좋음 -->
개선된 텍스트만 반환하세요 — 설명 없이.
<!-- 나쁨 — AI가 따옴표로 출력을 감싸거나 "다음은 개선된 버전입니다:"를 추가할 수 있음 -->
이 텍스트를 개선하세요.역할 설정
AI에 행동을 고정하는 페르소나를 부여합니다.
<!-- 좋음 -->
당신은 API 문서를 전문으로 하는 전문 기술 편집자입니다.
<!-- 괜찮지만 덜 집중됨 -->
다음 텍스트를 편집하세요.범위 제한
AI가 변경하지 않아야 할 것을 알려줍니다. 이는 과도한 편집을 방지합니다.
<!-- 좋음 -->
문법 및 철자 오류만 수정합니다.
의미, 스타일 또는 어조를 변경하지 마세요.
문장을 재구성하지 마세요.
<!-- 나쁨 — AI에게 너무 많은 자유를 줌 -->
이 텍스트를 수정하세요.예시 사용자 정의 지니
학술 — 초록 작성
---
description: 학술 초록 생성
scope: document
action: insert
---
다음 논문을 읽고 간결한 학술 초록
(150-250 단어)을 작성하세요. 표준 구조를 따릅니다: 배경, 방법,
결과, 결론.
{{content}}블로그 — 후크 생성
---
description: 매력적인 도입부 단락 작성
scope: document
action: insert
---
다음 초안을 읽고 독자를 사로잡는 매력적인 도입부 단락을 작성하세요.
질문, 놀라운 사실 또는 생생한 장면을 사용합니다. 3문장 이내로 유지하세요.
{{content}}이메일 — 전문적으로 만들기
---
description: 전문적인 어조로 다시 작성
scope: selection
---
다음 텍스트를 전문적이고 비즈니스에 적합한 어조로 다시 작성하세요.
같은 의미와 핵심 포인트를 유지합니다. 캐주얼한 언어,
속어, 채워 넣는 단어를 제거합니다.
설명 없이 다시 작성된 텍스트만 반환합니다.
{{content}}번역 — 한국어로
---
description: 한국어로 번역
scope: selection
---
다음 텍스트를 한국어로 번역하세요.
원래의 의미, 어조, 서식을 유지합니다.
직역이 아닌 자연스럽고 관용적인 한국어를 사용합니다.
설명 없이 번역된 텍스트만 반환합니다.
{{content}}제한 사항
- 지니는 WYSIWYG 모드 에서만 작동합니다. 소스 모드에서는 이를 설명하는 토스트 알림이 표시됩니다.
- 한 번에 하나의 지니만 실행할 수 있습니다. AI가 이미 생성 중이면 선택기가 다른 것을 시작하지 않습니다.
플레이스홀더는 문자 그대로 교체됩니다 — 조건부나 루프를 지원하지 않습니다.- 매우 큰 문서는
scope: document를 사용할 때 제공자 토큰 제한에 도달할 수 있습니다.
문제 해결
"AI 제공자를 사용할 수 없음" — 설정 > 통합을 열어 제공자를 구성하세요. AI 제공자를 참조하세요.
지니가 선택기에 나타나지 않음 — 파일에 .md 확장자가 있고, --- 펜스가 있는 유효한 프론트매터가 있으며, 지니 디렉토리에 있는지 확인하세요 (하위 디렉토리 한 레벨 이상 깊지 않게).
AI가 쓰레기 또는 오류를 반환함 — API 키가 올바르고 모델 이름이 제공자에게 유효한지 확인하세요. 오류 세부 사항은 터미널/콘솔을 확인하세요.
제안이 기대에 맞지 않음 — 프롬프트를 개선하세요. 제약 사항 추가 ("텍스트만 반환", "설명 없이"), 역할 설정, 또는 범위 좁히기.