Git 연동
jvim은 볼트 디렉토리를 git 저장소로 취급합니다. 상태 바는 현재 파일의 실시간 diff 수를 보여주고, 전용 패널은 파일별 hunk를 나열하며, 커맨드 팔레트에서 에디터를 벗어나지 않고 커밋, push, pull, fetch를 실행할 수 있습니다. 내부적으로 jvim은 시스템의 git 바이너리를 사용하므로 기존의 credential helper, SSH 에이전트, GPG 서명 설정이 모두 자동으로 적용됩니다.
Demo recording in progress — coming in the next release.
상태 바의 실시간 Diff
섹션 제목: “상태 바의 실시간 Diff”편집 중에 상태 바 헤더는 마지막 커밋 대비 추가 및 삭제된 라인 수를 +N / −M 형식으로 실시간으로 표시합니다. 저장할 때마다 수가 갱신됩니다. 카운트가 0이면 파일이 클린 상태입니다.
이 표시기를 통해 오버레이를 열지 않고도 워킹 트리가 HEAD에서 얼마나 벗어났는지 항상 파악할 수 있습니다.
커밋 로그 오버레이
섹션 제목: “커밋 로그 오버레이”Ctrl+L을 누르면 커밋 로그 오버레이가 열립니다 — 작성자, 짧은 SHA, 커밋 메시지와 함께 최근 커밋 목록이 표시됩니다. 히스토리를 검토하거나 최근 커밋이 반영되었는지 확인할 때 사용하세요.

| Keys | Action | Notes |
|---|---|---|
Ctrl+L | 커밋 로그 열기 | 최근 커밋 목록: 작성자, SHA, 메시지 |
↑ / ↓ | 항목 탐색 | 커밋 목록을 탐색합니다 |
Esc | 오버레이 닫기 | 에디터로 돌아갑니다 |
Git 패널
섹션 제목: “Git 패널”F5는 현재 저장소의 Git 패널을 엽니다. 여기에서 현재 파일의 hunk를 확인하고 공통 git 작업을 실행할 수 있습니다.
| Keys | Action | Notes |
|---|---|---|
F5 | Git 패널 열기 | 현재 파일의 git 상태와 패널 작업 표시 |
d | 현재 파일 diff 열기 | 활성 파일의 diff hunk 표시 |
c | 현재 파일 커밋 | 메시지를 입력받고 활성 파일을 stage합니다 |
p / P / f | push / pull / fetch | 해당 system git 명령 실행 |
현재 파일 Diff Hunk 패널
섹션 제목: “현재 파일 Diff Hunk 패널”diff hunk 패널은 현재 파일의 미커밋 변경 사항을 개별 hunk로 나누어 보여줍니다 — git diff HEAD <file>에서 얻는 것과 동일한 뷰를 인라인으로 렌더링합니다.
| Keys | Action | Notes |
|---|---|---|
Ctrl+P / F4 | 커맨드 팔레트 열기 | "diff"를 입력하면 현재 파일의 diff 패널이 열립니다 |
각 hunk는 이전 라인과 새 라인을 나란히 보여줍니다. 화살표 키로 hunk를 탐색합니다. 패널은 읽기 전용입니다 — 변경은 에디터 버퍼에서 평소처럼 이루어지고 Ctrl+S로 저장합니다.
커밋, Push, Pull, Fetch
섹션 제목: “커밋, Push, Pull, Fetch”Git 작업은 Git 패널(F5)과 일부 커맨드 팔레트 작업(F4 또는 Ctrl+P)을 통해 사용할 수 있습니다. 작업 이름을 입력하면 필터링됩니다:
- commit — Git 패널을 엽니다. 패널에서
c를 눌러 현재 파일을 커밋합니다. - push — 현재 브랜치를 업스트림 리모트에 push합니다.
- pull — fetch 후 fast-forward(
--ff-only)합니다. 로컬 브랜치가 분기된 경우, 머지 커밋을 만들지 않고 pull을 거부합니다. 다시 시도하기 전에 수동으로 rebase하거나 reset하세요. - fetch — 머지 없이 리모트에서 fetch합니다.
| Keys | Action | Notes |
|---|---|---|
F5 | Git 패널 열기 | diff와 현재 파일 커밋 작업 |
F4 / Ctrl+P | 커맨드 팔레트 열기 | git 작업 이름을 입력해 사용 가능한 작업 찾기 |
진행 상황과 오류는 상태 바에 토스트 알림으로 표시됩니다. 인증이 필요한 push는 시스템 credential helper 또는 SSH 에이전트를 통해 프롬프트가 표시됩니다 — jvim이 직접 자격 증명을 관리하지 않습니다.
내부적으로 사용하는 시스템 Git
섹션 제목: “내부적으로 사용하는 시스템 Git”jvim은 PATH에 있는 git 바이너리를 셸로 실행합니다. 이는 다음을 의미합니다:
~/.gitconfig(사용자 이름, 이메일, 서명 키)가 존중됩니다.- SSH 에이전트 포워딩은 jvim에서 별도 설정 없이 작동합니다.
- GPG 또는 SSH 커밋 서명은 기존 git 설정을 따릅니다.
.gitignore파일은 모든 git 작업에서 적용됩니다.
git이 PATH에 없으면 git 연동이 자동으로 비활성화되고 diff 표시기가 표시되지 않습니다.
체크아웃 후 재인덱싱
섹션 제목: “체크아웃 후 재인덱싱”vault 검색 데이터베이스와 링크 메타데이터는 볼트를 인식하므로 git checkout 후에도 손상 없이 유지됩니다. 브랜치를 전환하고 볼트 내용이 크게 변경된 경우 수동 재인덱싱을 트리거하세요:
| Keys | Action | Notes |
|---|---|---|
Ctrl+R | 볼트 재인덱싱 | 풀텍스트 검색 DB와 링크 메타데이터를 재구성합니다 |