Skip to content

AI 지니

AI 지니는 AI를 사용하여 텍스트를 변환하는 프롬프트 템플릿입니다. 텍스트를 선택하고, 지니를 호출한 다음, 에디터를 벗어나지 않고 제안된 변경사항을 검토합니다.

빠른 시작

  1. 설정 > 통합 에서 AI 제공자를 구성합니다 (AI 제공자 참조)
  2. 에디터에서 일부 텍스트를 선택합니다
  3. Mod + Y를 눌러 지니 선택기를 엽니다
  4. 지니를 선택하거나 자유형 프롬프트를 입력합니다
  5. 인라인 제안을 검토합니다 — 수락 또는 거부

지니 선택기

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

파일 형식

모든 지니 파일에는 프론트매터 (메타데이터)와 템플릿 (프롬프트)의 두 부분이 있습니다.

markdown
---
description: 명확성과 흐름을 개선
scope: selection
category: editing
---

당신은 전문 편집자입니다. 저자의 목소리와 의도를 유지하면서
다음 텍스트의 명확성, 흐름, 간결성을 개선하세요.

개선된 텍스트만 반환하세요 — 설명 없이.

{{content}}

파일명 polish.md는 선택기에서 표시 이름 "Polish"가 됩니다.

프론트매터 필드

필드필수 여부기본값
description아니요선택기에 표시되는 짧은 설명비어 있음
scope아니요selection, block, documentselection
category아니요그룹화를 위한 카테고리 이름하위 디렉토리 이름
action아니요replace, insertreplace
context아니요1, 20 (없음)
model아니요제공자 기본값을 재정의하는 모델 식별자제공자 기본값

지니 이름 — 표시 이름은 항상 파일 이름 (.md 없이)에서 파생됩니다. 예를 들어 fix-grammar.md는 선택기에서 "Fix Grammar"로 나타납니다. 파일 이름을 변경하여 표시 이름을 변경합니다.

플레이스홀더

플레이스홀더는 모든 지니의 핵심입니다. 지니가 실행될 때 VMark는:

  1. 범위를 기반으로 텍스트를 추출 합니다 (선택된 텍스트, 현재 블록 또는 전체 문서)
  2. 템플릿의 모든 를 추출된 텍스트로 교체 합니다
  3. 채워진 프롬프트를 활성 AI 제공자에게 전송 합니다
  4. 응답을 인라인 제안으로 다시 스트리밍 합니다

플레이스홀더

플레이스홀더는 AI에게 읽기 전용 주변 텍스트를 제공합니다 — 따라서 수정하지 않고 인근 블록의 어조, 스타일, 구조를 맞출 수 있습니다.

작동 방식:

  1. 프론트매터에서 context: 1 또는 context: 2를 설정하여 ±1 또는 ±2 인근 블록을 포함
  2. 주변 텍스트를 삽입할 위치에 템플릿에서 사용
  3. AI는 컨텍스트를 보지만 제안은 만 교체합니다

action 필드

기본적으로 지니는 소스 텍스트를 AI 출력으로 교체 합니다. action: insert를 설정하면 소스 블록 뒤에 출력을 추가 합니다.

편집, 재표현, 번역, 문법 수정 등 원본 텍스트를 변환하는 모든 것에 replace를 사용합니다.

이어쓰기, 콘텐츠 아래에 요약 생성, 주석 추가 등 원본을 제거하지 않고 새 텍스트를 추가하는 것에 insert를 사용합니다.

model 필드

특정 지니의 기본 모델을 재정의합니다. 간단한 작업에는 더 저렴한 모델을, 복잡한 작업에는 더 강력한 모델을 원할 때 유용합니다.

markdown
---
description: 빠른 문법 수정 (빠른 모델 사용)
scope: selection
model: claude-haiku-4-5-20251001
---

문법 및 철자 오류를 수정합니다. 수정된 텍스트만 반환합니다.

{{content}}

효과적인 프롬프트 작성

출력 형식에 대해 구체적으로

AI가 무엇을 반환할지 정확히 알려주세요. 이 없이는 모델이 설명, 헤더 또는 주석을 추가하는 경향이 있습니다.

markdown
<!-- 좋음 -->
개선된 텍스트만 반환하세요 — 설명 없이.

<!-- 나쁨 — AI가 따옴표로 출력을 감싸거나 "다음은 개선된 버전입니다:"를 추가할 수 있음 -->
이 텍스트를 개선하세요.

역할 설정

AI에 행동을 고정하는 페르소나를 부여합니다.

markdown
<!-- 좋음 -->
당신은 API 문서를 전문으로 하는 전문 기술 편집자입니다.

<!-- 괜찮지만 덜 집중됨 -->
다음 텍스트를 편집하세요.

범위 제한

AI가 변경하지 않아야 할 것을 알려줍니다. 이는 과도한 편집을 방지합니다.

markdown
<!-- 좋음 -->
문법 및 철자 오류만 수정합니다.
의미, 스타일 또는 어조를 변경하지 마세요.
문장을 재구성하지 마세요.

<!-- 나쁨 — AI에게 너무 많은 자유를 줌 -->
이 텍스트를 수정하세요.

예시 사용자 정의 지니

학술 — 초록 작성

markdown
---
description: 학술 초록 생성
scope: document
action: insert
---

다음 논문을 읽고 간결한 학술 초록
(150-250 단어)을 작성하세요. 표준 구조를 따릅니다: 배경, 방법,
결과, 결론.

{{content}}

블로그 — 후크 생성

markdown
---
description: 매력적인 도입부 단락 작성
scope: document
action: insert
---

다음 초안을 읽고 독자를 사로잡는 매력적인 도입부 단락을 작성하세요.
질문, 놀라운 사실 또는 생생한 장면을 사용합니다. 3문장 이내로 유지하세요.

{{content}}

이메일 — 전문적으로 만들기

markdown
---
description: 전문적인 어조로 다시 작성
scope: selection
---

다음 텍스트를 전문적이고 비즈니스에 적합한 어조로 다시 작성하세요.
같은 의미와 핵심 포인트를 유지합니다. 캐주얼한 언어,
속어, 채워 넣는 단어를 제거합니다.

설명 없이 다시 작성된 텍스트만 반환합니다.

{{content}}

번역 — 한국어로

markdown
---
description: 한국어로 번역
scope: selection
---

다음 텍스트를 한국어로 번역하세요.
원래의 의미, 어조, 서식을 유지합니다.
직역이 아닌 자연스럽고 관용적인 한국어를 사용합니다.

설명 없이 번역된 텍스트만 반환합니다.

{{content}}

제한 사항

  • 지니는 WYSIWYG 모드 에서만 작동합니다. 소스 모드에서는 이를 설명하는 토스트 알림이 표시됩니다.
  • 한 번에 하나의 지니만 실행할 수 있습니다. AI가 이미 생성 중이면 선택기가 다른 것을 시작하지 않습니다.
  • 플레이스홀더는 문자 그대로 교체됩니다 — 조건부나 루프를 지원하지 않습니다.
  • 매우 큰 문서는 scope: document를 사용할 때 제공자 토큰 제한에 도달할 수 있습니다.

문제 해결

"AI 제공자를 사용할 수 없음" — 설정 > 통합을 열어 제공자를 구성하세요. AI 제공자를 참조하세요.

지니가 선택기에 나타나지 않음 — 파일에 .md 확장자가 있고, --- 펜스가 있는 유효한 프론트매터가 있으며, 지니 디렉토리에 있는지 확인하세요 (하위 디렉토리 한 레벨 이상 깊지 않게).

AI가 쓰레기 또는 오류를 반환함 — API 키가 올바르고 모델 이름이 제공자에게 유효한지 확인하세요. 오류 세부 사항은 터미널/콘솔을 확인하세요.

제안이 기대에 맞지 않음 — 프롬프트를 개선하세요. 제약 사항 추가 ("텍스트만 반환", "설명 없이"), 역할 설정, 또는 범위 좁히기.

참고