<p align="center">
<img src="https://raw.githubusercontent.com/kurouna/elecxzy/HEAD/public/elecxzy_repo_card.svg" width="800" alt="elecxzy - 차세대 Emacs 스타일의 현대적인 에디터">
</p>
-
Emacs 키 바인딩 (Emacs Keybindings): 커서 이동 (C-f, C-b, C-n, C-p), 재귀적 창 분할 (C-x 2, C-x 3), 창 크기 조절 (C-x ^, C-x }), 애니메이션이 적용된 창 레이아웃 재구성 (C-x w t로 전치, C-x w f / C-x w v로 반전, C-x w r <Right> / <Left>로 레이아웃 90도 회전, C-x w o <Right> / <Left>로 창 간 버퍼 순환), 그리고 킬 링 (kill ring) 관리 (C-w, M-w, C-y, M-y)를 포함한 핵심 동작들을 지원합니다.
-
검색 및 치환 (Search & Replacement): 증분 검색 (C-s), 대화형 치환 (M-%), 그리고 백그라운드 OS 프로세스 (findstr / grep)를 활용한 디렉토리 전역 파일 검색 (M-x grep) 기능을 제공합니다.
-
완성 시스템 (Completion System): 버퍼 로컬 단어 완성을 위한 dabbrev-expand (M-/) 기능을 통해 멀티바이트 문자를 추출하고 실행 취소(undo) 체인의 무결성을 유지합니다.
-
라이브 미리보기 (Live Preview): Markdown, HTML, 일반 텍스트(텍스트의 경우 창 가장자리에서 줄 바꿈 적용)에 대한 미리보기 모드를 제공하며, 소스 버퍼의 위치를 추적하는 단방향 스크롤 동기화 기능을 특징으로 합니다.
-
창 및 버퍼 관리 (Window & Buffer Management): 원활한 버퍼 전환 (C-x b)과 전용 버퍼 리스트 (C-x C-b)를 제공합니다. 표준 미니버퍼(minibuffer) 프롬프트 외에도 OS 네이티브 파일 및 저장 대화 상자를 활용할 수 있는 명령어를 제공합니다 (C-x M-f, C-x M-w).
-
사이드바 파일 탐색기 (Sidebar File Explorer (Filer)): 창의 왼쪽에 표시되는 전용 파일 관리자 (C-x d / C-c d)입니다. 빠른 파일 미리보기 (l / Right)와 Windows 시스템 드라이브를 포함한 디렉토리 탐색 (r, u) 기능을 제공합니다.
-
사이드바 유틸리티 스위트 (Sidebar Utility Suite): 편집을 돕기 위해 창의 오른쪽에 표시되는 여러 개의 전용 사이드바입니다:
- 워크스페이스 사이드바 (Workspace Sidebar) (
C-c w, C-, 또는 M-x toggle-workspace-sidebar): 전용 워크스페이스에서 여러 폴더를 관리하며, VS Code와 호환되는 .code-workspace 파일을 원활하게 열고 저장할 수 있습니다.
- 아웃라인 뷰 (Outline View) (
C-c o): Markdown 및 HTML의 헤딩(heading)을 실시간 동기화와 함께 계층 구조로 표시합니다.
-
Kill Ring 사이드바 (Kill Ring Sidebar) (C-c y 또는 M-x browse-kill-ring): 킬 링 (Kill Ring, 클립보드 히스토리)을 탐색하고 관리합니다.
- 레지스터 사이드바 (Register Sidebar) (
C-c r 또는 M-x browse-registers): 영구 레지스터 (텍스트, 포인트(points), 윈도우 레이아웃)를 검사하고 선택합니다.
- 실행 취소 히스토리 사이드바 (Undo History Sidebar) (
C-c u 또는 M-x browse-undo-history): 텍스트 미리보기를 통해 활성 버퍼의 실행 취소 (Undo) 히스토리를 탐색합니다. 항목을 선택하면 버퍼가 해당 시점으로 되돌아가며, 이는 단일 재실행 (Redo) 트랜잭션으로 기록됩니다 (Office 스타일).
- 재생 히스토리 (Playback History) (
M-x playback-history): 버퍼의 편집 히스토리를 애니메이션으로 보여줍니다. 가장 오래된 상태로 되감은 뒤 현재 상태까지 단계별로 재실행 (Redo)합니다. 접두사 인자 (Prefix arguments)로 속도를 제어할 수 있습니다 (C-u = 10ms, C-u C-u = 1ms, C-u <n> = <n> ms, 최대 1000ms). 아무 키나 클릭하면 중단되며, 즉시 최신 상태로 점프합니다. 읽기 전용 보호 기능이 애니메이션 도중 자동 저장 (Auto-save), MCP 쓰기, 외부 드래그 앤 드롭으로부터 버퍼를 보호하므로 중간 상태가 디스크에 저장되지 않습니다.
- 최근 파일 사이드바 (Recent Files Sidebar) (
C-c c 또는 M-x browse-recent-files): 경로 미리보기를 통해 최근 사용한 파일을 빠르게 탐색하고 엽니다. m을 누르면 포커스된 파일을 고정 (Pin) / 해제 (Unpin)할 수 있습니다.
- 북마크 사이드바 (Bookmark Sidebar) (
C-c b / C-x r l 또는 M-x browse-bookmarks): 장기적인 빠른 액세스를 위해 파일을 고정합니다. 최근 파일 (Recent Files) / 파일러 (Filer) / 워크스페이스 (Workspace) 사이드바의 파일에서 m을 누르면 북마크에 추가되고, 북마크 사이드바 내부에서 m을 누르면 제거됩니다. 북마크는 config.json에 저장됩니다. C-x r m (bookmark-set)을 사용하여 현재 열려 있는 파일을 고정하거나 (이미 북마크된 경우 메시지와 함께 동작 안 함), M-x bookmark-toggle로 토글할 수 있습니다. 키 바인딩은 Emacs bookmark.el 관례를 따릅니다.
- 설정 사이드바 (Settings Sidebar) (
C-c s, C-. 또는 M-x open-config): 폰트, 테마, 줄 번호와 같은 에디터 설정을 관리합니다.
-
터미널 통합 (Terminal Integration): Windows 환경에서 내장된 대화형 셸 버퍼 (M-x shell)를 제공합니다.
-
메이저 모드 (Major Modes): 파일 확장자를 기반으로 주요 언어에 대한 자동 언어 감지 및 구문 강조 (Syntax Highlighting)를 지원합니다.
-
미니버퍼 완성 (Minibuffer Completion): 미니버퍼 내에서 M-x 명령, 파일 및 디렉토리에 대한 대화형 완성 기능을 제공합니다.
-
비텍스트 파일 가져오기 (Non-text File Import): PDF, Word 문서 (.docx), Excel (.xlsx) 파일에서 일반 텍스트를 자동으로 추출하여 가져옵니다. Excel 문서는 시트 헤더와 함께 파싱되며 데이터는 깔끔한 TSV (Tab-Separated Values) 레이아웃으로 포맷팅됩니다. 참고: 가져온 파일은 원본 바이너리 데이터가 덮어쓰여지는 것을 방지하기 위해 **읽기 전용 모드 (Read-only mode)**로 열립니다. 추출된 텍스트를 새 파일로 저장하려면 '다른 이름으로 저장' (C-x C-w 또는 C-x M-w)을 사용하세요. 시스템 안정성을 보장하기 위해 이러한 형식에는 50MB 크기 제한이 적용됩니다.
-
파일 작업 및 인코딩 (File Operations & Encoding): 주기적인 자동 저장, 최근 파일 목록 (M-x recentf-open-files), 자동 UTF-8 승격 (Promotion), 그리고 네이티브 버퍼 출력 (M-x print-buffer) 기능을 포함합니다.
-
텍스트 포맷팅 (단락 채우기, Fill Paragraph): M-q (fill-paragraph) 명령을 통해 설정 가능한 너비 (set-wrap-column)를 기준으로 단락을 재포맷하고 하드 랩 (Hard-wrap)하여, 일본어와 영어 텍스트 모두에 최적화된 레이아웃을 제공합니다.
-
지속성 레지스터 (Persistent Registers): Emacs 스타일의 레지스터를 사용하여 세션 간에 텍스트, 커서 위치 또는 **윈도우 레이아웃 (Window layouts)**을 저장하고 불러올 수 있습니다. 명령에는 C-x r s (레지스터로 복사), C-x r i (삽입), C-x r SPC (포인트 저장), C-x r j (점프 / 레이아웃 복구), C-x r w (윈도우 레이아웃 저장)가 포함됩니다. 모든 데이터는 브라우저의 로컬 스토리지 (Local storage)에 유지됩니다. 레스탱글 마크 (Rectangle mark) 모드일 때는 특수한 '사각형 (Rectangle)' 타입 저장을 지원합니다.
-
사각형 편집 (Rectangle Editing): 열(Column) 단위의 대량 편집을 위한 강화된 사각형 지원 기능을 제공합니다. C-x SPC로 사각형 마크 모드에 진입하여 C-x r k (kill), M-x kill-ring-save (copy), C-y (yank)와 같은 작업을 수행할 수 있습니다. 에디터는 킬 링 (Kill ring)과 레지스터 내의 사각형 데이터를 지능적으로 감지합니다.
-
Full Unicode Support (전체 유니코드 지원): 에디터 전반에 걸쳐 서로게이트 페어 (surrogate pairs, 이모지 등)를 견고하게 처리하여, 편집 또는 탐색 중에 문자가 분리되지 않도록 보장합니다.
-
Accurate Word Navigation (정확한 단어 탐색): 네이티브 Intl.Segmenter API를 활용하여 정밀한 단어 경계 감지를 수행합니다. CJK (중국어, 일본어, 한국어) 텍스트 전반에 걸쳐 자연스러운 커서 이동(M-f, M-b 등)을 제공하며, 추가 설정 없이도 서브워드 (subword, 예: snake_case) 탐색을 기본적으로 지원합니다.
-
Avy Jump Navigation (C-'): 타겟 레이블을 사용하여 가시적인 뷰포트 내에서 커서를 빠르게 이동합니다. C-'를 누른 후 문자를 입력하면 일치하는 위치에 레이블이 겹쳐서 나타나며, 해당 레이블을 입력하여 점프할 수 있습니다.
-
Cursor Visual Effects (VFX, 커서 시각 효과): 커서 이동에 역동적인 시각적 화려함을 더합니다. 9가지의 독특한 스타일(
-
MCP 서버 통합 (MCP Server Integration): Model Context Protocol(MCP) 서버 역할을 수행하여, AI 비서(Google Antigravity, Claude Desktop/Code 등)가 ELECXZY_MCP_MODE 환경 변수를 통해 버퍼를 읽거나 편집하고 에디터를 직접 제어할 수 있게 합니다.
-
사용자 지정 키 바인딩 (keybinds.json): 기본 키 바인딩을 재구축하지 않고도 덮어쓰거나 제거할 수 있습니다. config.json 옆에 keybinds.json 파일을 추가하면 됩니다 (언제든지 M-x show-keybinds-config로 열기). Emacs 스타일 표기법이 지원됩니다 (\ ext{C-} = Ctrl, ext{M-} = Alt, 공백으로 구분된 토큰은 `