An open API service indexing awesome lists of open source software.

https://github.com/kurouna/elecxzy

elecxzy project
https://github.com/kurouna/elecxzy

electron elecxzy emacs emacs-like piece-table react text-editor typescript xyzzy

Last synced: 24 days ago
JSON representation

elecxzy project

Awesome Lists containing this project

README

          


elecxzy - Next-generation Emacs-like modern editor

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Zenn](https://img.shields.io/badge/Zenn-kurouna-blue)](https://zenn.dev/kurouna)
[![X](https://img.shields.io/badge/X-elecxzy-black)](https://x.com/elecxzy)

**A Lisp-free text editor with Emacs keybindings, featuring a built-in MCP server for AI-driven editing.**

https://github.com/user-attachments/assets/ea817cb4-85c9-4225-9425-5c61915823ab

[English](#english) | [日本語](#japanese)

---


## English

`elecxzy` is a text editor developed to provide an Emacs-like editing experience within a web technology stack (Electron). While it does not include an embedded Lisp engine, it features a built-in MCP (Model Context Protocol) server, enabling AI assistants to directly interact with and control the editor. By providing well-considered default settings out of the box, it reduces the need for extensive initial configuration, allowing you to start editing immediately.

### Download

**Windows only**

[![Microsoft Store](https://img.shields.io/badge/Download-Microsoft_Store-0078D4?style=for-the-badge&logo=microsoft&logoColor=white)](https://apps.microsoft.com/detail/9P32F2WFL69M)

Automatic updates are provided via the Microsoft Store. For the latest development builds, you can also download binaries from:
👉 **[GitHub Releases](https://github.com/kurouna/elecxzy/releases)**

*Note: The source repository is currently private.*

### Architecture & Design

- **Technology Base**: Built on the Electron framework, utilizing HTML and CSS for the user interface, and TypeScript for application logic. It employs IPC communication between the Main and Renderer processes to handle system-level operations.
- **Buffer Management**: Uses an RB-Tree (Red-Black Tree) based Piece Table. This allows efficient operations and incremental, delta-based undo histories for large files.
- **Rendering Engine**: Implements a custom virtual rendering system. It utilizes the Canvas API for accurate text metrics (handling mixed full-width and half-width characters without fixed-width assumptions) and minimizes DOM reflows.
- **IME Input Control**: Implements explicit handling of DOM composition events to manage uncommitted text state and focus. Additionally, it ignores IME input after prefix keys (e.g., `C-x`) to prevent conflicts between Japanese text input and Emacs command execution.
- **Settings System**: Relies on static JSON configurations (`config.json`, `color-config.json`) instead of a dynamic scripting engine.

### Key Features

* **Emacs Keybindings:** Core operations including cursor movement (`C-f`, `C-b`, `C-n`, `C-p`), recursive window splitting (`C-x 2`, `C-x 3`), window resizing (`C-x ^`, `C-x }`), animated window-layout reshaping (`C-x w t` to transpose, `C-x w f` / `C-x w v` to flip, `C-x w r ` / `` to rotate the layout 90°, `C-x w o ` / `` to cycle buffers across panes), and kill ring management (`C-w`, `M-w`, `C-y`, `M-y`).
* **Search & Replacement:** Incremental search (`C-s`), interactive replacement (`M-%`), and cross-file search across directories (`M-x grep`) powered by background OS processes (`findstr` / `grep`).
* **Completion System:** `dabbrev-expand` (`M-/`) for buffer-local word completion, extracting multi-byte characters and preserving undo chain integrity.
* **Live Preview:** Preview modes for Markdown and HTML, featuring one-way scroll synchronization that tracking the source buffer's position.
* **Window & Buffer Management:** Provides seamless buffer switching (`C-x b`) and a dedicated buffer list (`C-x C-b`). In addition to standard minibuffer prompts, it provides commands to utilize OS-native file and save dialogs (`C-x M-f`, `C-x M-w`).
* **Sidebar File Explorer (Filer):** A dedicated file manager (`C-x d` / `C-c d`) displayed on the window's left side. Provides fast file previewing (`l` / `Right`), and directory traversal (`r`, `u`) including support for Windows system drives.
* **Sidebar Utility Suite:** Multiple dedicated sidebars displayed on the window's right side to assist editing:
* **Workspace Sidebar** (`C-c w`, `C-,` or `M-x toggle-workspace-sidebar`): Manage multiple folders in a dedicated workspace, seamlessly opening and saving `.code-workspace` files compatible with VS Code.
* **Outline View** (`C-c o`): Hierarchical display of headings for Markdown and HTML with real-time sync.
* **Kill Ring Sidebar** (`C-c y` or `M-x browse-kill-ring`): Browse and manage your kill ring (clipboard history).
* **Register Sidebar** (`C-c r` or `M-x browse-registers`): Inspect and select persistent registers (text and points).
* **Undo History Sidebar** (`C-c u` or `M-x browse-undo-history`): Browse the active buffer's undo history with text previews; selecting an entry rolls the buffer back to that point and is recorded as a single redo transaction (Office-style).
* **Recent Files Sidebar** (`C-c c` or `M-x browse-recent-files`): Quickly browse and open recently used files with path previews.
* **Settings Sidebar** (`C-c s`, `C-.` or `M-x open-config`): Manage editor configurations like fonts, themes, and line numbers.
* **Terminal Integration:** Built-in interactive shell buffer (`M-x shell`) on Windows environments.
* **Major Modes:** Automatic language detection and syntax highlighting for major languages based on file extensions.
* **Minibuffer Completion:** Interactive completion for `M-x` commands, files, and directories within the minibuffer.
* **Non-text File Import:** Automatically extract and import plain text from PDF, Word documents (**`.docx`**), and Excel (**`.xlsx`**) files. Excel documents are parsed with sheet headers and data formatted in a clean TSV (Tab-Separated Values) layout. **Note:** Imported files are opened in **Read-only mode** to prevent overwriting the original binary data. Use 'Save As' (`C-x C-w` or `C-x M-w`) to save the extracted text to a new file. A **50MB size limit** applies to these formats to ensure system stability.
* **File Operations & Encoding:** Includes periodic auto-saving, a recent files list (`M-x recentf-open-files`), automatic UTF-8 promotion, and native buffer printing (`M-x print-buffer`).
* **Text Formatting (Fill Paragraph):** `M-q` (`fill-paragraph`) command to reformat and hard-wrap paragraphs based on a configurable width (`set-wrap-column`), optimizing layout for both Japanese and English text.
* **Persistent Registers:** Store and recall text or cursor positions across sessions using Emacs-style registers. Commands include `C-x r s` (copy to register), `C-x r i` (insert), `C-x r SPC` (save point), and `C-x r j` (jump). All data is persisted in browser local storage. Supports special 'rectangle' type storage when in rectangle mark mode.
* **Rectangle Editing:** Enhanced rectangle support for mass-editing columns. Enter rectangle mark mode with `C-x SPC`, and perform operations like `C-x r k` (kill), `M-x kill-ring-save` (copy), and `C-y` (yank). The editor intelligently detects rectangular data in the kill ring and registers.
* **Full Unicode Support:** Robust handling of surrogate pairs (emojis, etc.) throughout the editor, ensuring characters are never split during editing or navigation.
* **Accurate Word Navigation**: Utilizes the native `Intl.Segmenter` API for precise word boundary detection. It provides natural cursor movement (`M-f`, `M-b`, etc.) across CJK (Chinese, Japanese, Korean) text and supports subword navigation (e.g., `snake_case`) out of the box without additional configurations.
* **Avy Jump Navigation (`C-'`):** Quick cursor movement within the visible viewport using target labels. Press `C-'` followed by a character to overlay matching locations with labels, then type the label to jump.
* **Cursor Visual Effects (VFX):** Add dynamic visual flair to your cursor movement. Switch between 9 unique styles (including "Light Particle", "Cyber Trace", and "Kawaii Shower") or turn it off using dedicated shortcuts:
* `C-c 1` to `C-c 9`: Switch through different VFX styles.
* `C-c 0`: Turn VFX off.
* **Lightweight Cursor-based Macros (Beta):** Reproduce repetitive text mutations (`insert`/`delete`) relative to the cursor position (`C-x (`, `C-x )`, `C-x e`). Supports prefix arguments for repetition (e.g., `C-u 10 C-x e`).
* **Customizable Color Themes:** Personalize your workspace with color themes. Switch between built-in modes like **"Dark"**, **"Light"**, **"Cyber"** (Neon/Futuristic), and **"Cute"** (Pastel/Macaron) using `M-x -theme`. Note: Application restart is required for changes to take effect.
* **MCP Server Integration**: Functions as a Model Context Protocol (MCP) server, allowing AI assistants (Google Antigravity, Claude Desktop/Code, etc.) to read/edit buffers and control the editor directly via the **`ELECXZY_MCP_MODE`** environment variable.
* **Custom Keybindings (`keybinds.json`)**: Override or remove default keybindings without rebuilding. Drop a `keybinds.json` next to `config.json` (open it any time with `M-x show-keybinds-config`); Emacs-style notation is supported (`\C-` = Ctrl, `\M-` = Alt, space-separated tokens form a key sequence like `"C-x C-f"`), and an empty string value removes a binding. Parsing or validation problems are reported once in the echo line and never crash editing. Example:
```json
{
"\\C-s": "save-buffer",
"C-x C-r": "mark-whole-buffer",
"\\C-_": ""
}
```


elecxzy Screenshot
elecxzy Screenshot
elecxzy Screenshot
elecxzy Screenshot
elecxzy Screenshot
elecxzy Screenshot
elecxzy Screenshot

### MCP Server Integration

`elecxzy` can function as an MCP server. By connecting your AI assistant to `elecxzy`, the AI can gain direct access to your open buffers, layout, and editing commands. This allows for powerful AI-driven editing workflows.

> [!IMPORTANT]
> Before starting the MCP server, configure **Allowed Save Directories** in `Settings → MCP` (or `mcpAllowedDirectories` in `config.json`). The MCP `save_file` tool can only write to paths under one of these directories. `M-x mcp-start` aborts with an echo-line message if the list is empty or contains a non-existent path.

#### Configuration (Google Antigravity / Claude Desktop / Claude Code)

Add the following to your `claude_desktop_config.json` or the relevant configuration section of your AI agent (like Google Antigravity), referring to one of the examples below:

```json
{
"mcpServers": {
"elecxzy": {
"command": "C:\\path\\to\\elecxzy\\elecxzy.exe",
"args": ["C:\\path\\to\\elecxzy\\resources\\app.asar"],
"env": {
"ELECXZY_MCP_MODE": "true",
"ELECTRON_RUN_AS_NODE": "1"
}
}
}
}
```

```json
{
"mcpServers": {
"elecxzy": {
"command": "C:\\Users\\...\\AppData\\Local\\Programs\\elecxzy\\elecxzy.exe",
"args": ["C:\\Users\\...\\AppData\\Local\\Programs\\elecxzy\\resources\\app.asar"],
"env": {
"ELECXZY_MCP_MODE": "true",
"ELECTRON_RUN_AS_NODE": "1"
}
}
}
}
```

### Tech Stack

- **Platform**: Electron
- **Frontend**: React, TypeScript
- **Styling**: Styled-components

### Commands and Customization

For a full list of available commands and keybindings, please refer to:
👉 **[COMMANDLIST.md](./COMMANDLIST.md)**

---


## 日本語

`elecxzy` は、Electronを基盀ずしお開発された、Emacsキヌバむンドをサポヌトするテキスト゚ディタです。
Lispなどのスクリプト゚ンゞンは内蔵しおいたせんが、テキスト線集機胜を提䟛するMCPModel Context Protocolサヌバヌ機胜を備えおおり、各皮AIアシスタントから盎接゚ディタを操䜜するこずが可胜です。
あらかじめ䜿いやすい蚭定をデフォルト倀ずしお組み蟌んでおくこずで、初期蚭定のオヌバヌヘッドを枛らし、むンストヌル盎埌からすぐに䜜業を開始できるこずを目的に蚭蚈されおいたす。

### ダりンロヌド

**Windows専甚**

[![Microsoft Storeからダりンロヌド](https://img.shields.io/badge/Download-Microsoft_Store-0078D4?style=for-the-badge&logo=microsoft&logoColor=white)](https://apps.microsoft.com/detail/9P32F2WFL69M)

Microsoft Store版は、自動曎新が提䟛されたす。最新の開発版GitHub経由は以䞋から入手可胜です
👉 **[GitHub Releases](https://github.com/kurouna/elecxzy/releases)**

*※゜ヌスコヌドは珟圚非公開です。*

### アヌキテクチャず蚭蚈方針

- **基盀技術**: Electronフレヌムワヌクをベヌスずし、UIの構築にHTML/CSS、アプリケヌションロゞックにTypeScriptを採甚しおいたす。メむンプロセスずレンダラヌプロセス間のIPC通信を甚いお、ファむルやりィンドりのシステム凊理を連携させおいたす。
- **バッファ管理**: 赀黒朚RB-Treeベヌスの Piece Table をデヌタ構造ずしお採甚しおいたす。差分Deltaを利甚したむンクリメンタルなUndo履歎の構築により、倧容量ファむルにおいおもメモリ䜿甚量を抑え぀぀線集操䜜が可胜です。
- **描画゚ンゞン**: 仮想レンダリングによるカスタム描画系を実装しおいたす。Canvas APIを利甚した高粟床な文字幅蚈枬を組み蟌むこずで、フォントサむズや党角・半角文字の混圚に起因するレむアりトのズレを防ぎ、論理的なカヌ゜ル配眮ずスクロヌル蚈算を行っおいたす。
- **IME入力制埡**: DOMのcompositionむベントを利甚しお未確定文字の匷制確定やフォヌカス管理を行っおいるほか、プリフィックスキヌ`C-x`等の入力盎埌はIMEの入力を無芖する制埡を入れるこずで、Emacsキヌバむンドず日本語入力の競合を防ぎ、コマンド実行の確実性を向䞊させおいたす。
- **蚭定機構**: 動的なスクリプト゚ンゞンを持たず、静的な蚭定ファむル`config.json` および `color-config.json`を甚いお゚ディタの倖芳や基本的な挙動を管理したす。

### 䞻な機胜

* **Emacs互換の操䜜䜓系**: 基本的なカヌ゜ル移動`C-n`, `C-a`等、再垰的なりィンドりの分割ず比率倉曎`C-x 2`, `C-x ^`等、りィンドりレむアりトのアニメヌション付き再構成`C-x w t` で転眮、`C-x w f` / `C-x w v` で巊右・䞊䞋反転、`C-x w r ` / `` でレむアりト 90° 回転、`C-x w o ` / `` でペむン間バッファ埪環シフト、キルリングの管理`C-w`, `M-w`, `C-y`, `M-y`をサポヌト。
* **怜玢・眮換機胜**: むンクリメンタル怜玢`C-s`、察話的眮換`M-%`、およびバックグラりンドのOSプロセスWindowsでは `findstr`、他環境では `grep`を甚いたディレクトリ内テキスト怜玢`M-x grep`。
* **動的単語補完**: バッファ近傍の文字列から掚枬する `dabbrev-expand` (`M-/`)。日本語などのマルチバむト文字の抜出に察応し、Undo履歎管理ずの連携を維持したす。
* **リアルタむムプレビュヌ**: MarkdownおよびHTMLの線集内容を反映するプレビュヌモヌド。゜ヌスバッファのスクロヌルに連動しおプレビュヌ偎もスクロヌルする片方向スクロヌル同期を備えおいたす。
* **りィンドり・バッファ管理**: バッファの切り替え (`C-x b`) や専甚のバッファリスト機胜 (`C-x C-b`) を備えるほか、ミニバッファによるファむル操䜜に加えお、OSネむティブのファむル遞択・保存ダむアログ (`C-x M-f`, `C-x M-w`) もサポヌトしたす。
* **サむドバヌ型ファむラ機胜**: りィンドり巊偎に衚瀺されるファむル゚クスプロヌラ (`C-x d` / `C-c d`)。玠早くファむルの䞭身を確認できるプレビュヌ機胜 (`l` / `Right`) や、Windows環境のシステムドラむブにも察応したディレクトリナビゲヌション (`r`, `u`) を備えおいたす。
* **右サむドバヌ機胜矀:** りィンドり右偎に衚瀺される、線集を効率化するための各皮専甚サむドバヌを搭茉
* **ワヌクスペヌス・サむドバヌ** (`C-c w`, `C-,` たたは `M-x toggle-workspace-sidebar`): 耇数のフォルダをたずめお管理。VS Code互換の `.code-workspace` ファむルの読み曞きに察応しおいたす。
* **アりトラむンビュヌ** (`C-c o`): Markdown/HTMLの芋出し階局を衚瀺。゚ディタずのリアルタむム同期や䜍眮埩元に察応。
* **キルリング・サむドバヌ** (`C-c y` たたは `M-x browse-kill-ring`): キルリングクリップボヌド履歎を䞀芧し、過去のテキストを遞択しおダンク貌り付け可胜。
* **レゞスタ・サむドバヌ** (`C-c r` たたは `M-x browse-registers`): 保存されおいるテキストや䜍眮レゞスタを䞀芧。
* **Undo 履歎サむドバヌ** (`C-c u` たたは `M-x browse-undo-history`): 珟圚のバッファの Undo 履歎を䞭身付きで䞀芧衚瀺し、遞択した項目たでたずめお Undo できたす。サむドバヌ経由のたずめ Undo は 1 回の Redo で䞀括埩元できたすWord/Excel ず同様。
* **最近䜿ったファむルサむドバヌ** (`C-c c` たたは `M-x browse-recent-files`): 最近䜿甚したファむルをディレクトリパスず共に䞀芧衚瀺し、玠早く開くこずが可胜。
* **蚭定サむドバヌ** (`C-c s`, `C-.` たたは `M-x open-config`): フォント、テヌマ、行番号衚瀺などの゚ディタ蚭定を芖芚的に管理。
* **シェル統合**: ゚ディタ内で察話的シェルcmd.exe等を実行するバッファ機胜 (`M-x shell`)。
* **メゞャヌモヌド**: ファむルの拡匵子刀定に基づくシンタックスハむラむト。
* **ミニバッファ補完**: `M-x` 時のコマンドのほか、ファむルパスやディレクトリパスの補完機胜を搭茉。
* **ドキュメント・むンポヌタヌ**: PDF、Word (**`.docx`**)、Excel (**`.xlsx`**) 圢匏のファむルを、プレヌンテキストずしお自動的に抜出・むンポヌトしお開くこずが可胜です。Excel は各シヌトが TSV 圢匏で読み蟌たれたす。**泚意:** 元のバむナリファむルを砎壊しないよう、むンポヌトされたバッファは自動的に**「読み取り専甚Read-only」**ずしお開かれたす安定性確保のため、**50MBたでのサむズ制限**がありたす。抜出したテキストを保存する堎合は `Save As` (`C-x C-w`たたは`C-x M-w`) を䜿甚しおください。
* **ファむル・゚ンコヌディング管理**: オヌトセヌブ、最近開いたファむルの履歎 (`M-x recentf-open-files`)、自動UTF-8昇栌、および印刷機胜 (`M-x print-buffer`) に察応。
* **段萜敎圢機胜 (`M-q`)**: 指定した桁数でテキストをハヌドラップし、段萜を矎しく再敎圢する `fill-paragraph` 機胜を搭茉。
* **氞続化レゞスタ機胜**: テキストやカヌ゜ル䜍眮を䞀時的に蚘憶レゞスタし、必芁な時に呌び出せたす。保存内容はロヌカルストレヌゞぞ氞続化されたす。察応コマンド: `C-x r s` (コピヌ), `C-x r i` (挿入), `C-x r SPC` (点保存), `C-x r j` (ゞャンプ)。矩圢遞択モヌド䞭であれば矩圢デヌタずしおも保存可胜です。
* **矩圢線集機胜**: 瞊方向にテキストを操䜜する矩圢線集を正匏にサポヌト。`C-x SPC` で矩圢マヌクモヌドに入り、`C-x r k` (切り取り) やダンク (C-y) が可胜です。キルリングやレゞスタに保存された矩圢デヌタは、貌り付け時に自動的に刀別・展開されたす。
* **サロゲヌトペアぞの完党察応**: 絵文字や特殊挢字などのサロゲヌトペアを「䞀文字」ずしお厳栌に管理。線集・移動・敎圢時に文字が分断されるこずのない堅牢なテキスト凊理を実珟。
* **正確な単語ナビゲヌション**: ネむティブの `Intl.Segmenter` API を利甚した単語境界の刀定を実装しおいたす。日本語CJKにおける自然な文節移動や、スネヌクケヌス`snake_case`などのサブワヌド単䜍でのカヌ゜ル移動`M-f`, `M-b` などに暙準で察応しおいたす。
* **Avy ゞャンプ (`C-'`):** 画面内の衚瀺領域に察しお、ラベル入力を甚いたカヌ゜ル移動。`C-'` に続けお文字を入力するず座暙にラベルが重畳衚瀺され、それをタむピングするこずで目的の堎所ぞ即座にゞャンプできたす。
* **カヌ゜ルVFX:** カヌ゜ルの移動に合わせお動的な芖芚効果粒子、雷、カワむむシャワヌ、分身などを衚瀺したす。ショヌトカットキヌで9皮類のスタむルを瞬時に切り替え可胜です。
* `C-c 1` 〜 `C-c 9`: 各皮VFXスタむルを遞択。
* `C-c 0`: VFXをオフにしたす。
* **簡易的なカヌ゜ルベヌスマクロ (Beta):** カヌ゜ル䜍眮を基準ずしたテキスト操䜜挿入・削陀を蚘録・再珟したす`C-x (`, `C-x )`, `C-x e`。ナニバヌサル匕数による連続実行`C-u 10 C-x e` 等にも察応しおいたす。
* **カスタマむズ可胜なカラヌテヌマ:** カラヌテヌマで䜜業空間をパヌ゜ナラむズできたす。**"Dark"**, **"Light"**, **"Cyber"** (ネオン/近未来), **"Cute"** (パステル/マカロン) などの内蔵テヌマを `M-x <テヌマ名>-theme` コマンドで切り替え可胜です。※蚭定の反映にはアプリケヌションの再起動が必芁です。
* **MCP サヌバヌ統合**: Model Context Protocol (MCP) サヌバヌずしお動䜜可胜。環境倉数 **`ELECXZY_MCP_MODE`** を **`true`** に指定しお起動するこずで、AI アシスタントGoogle Antigravity, Claude Desktop/Code 等から盎接バッファの読み曞きや゚ディタ操䜜が行えたす。
* **キヌバむンドのカスタマむズ (`keybinds.json`)**: 再ビルドなしに既定キヌマップを䞊曞き・削陀できたす。`config.json` ず同じナヌザデヌタフォルダに `keybinds.json` を眮くだけ`M-x show-keybinds-config` でい぀でも開けたす。蚘法は Emacs 互換で、`\C-` が `Ctrl`、`\M-` が `Alt`、スペヌス区切りでキヌシヌケンス`"C-x C-f"`を衚珟できたす。倀を空文字 `""` にするずそのバむンドを削陀したす。JSON の構文゚ラヌや未登録コマンド ID などぱコヌラむンに 1 床だけたずめお衚瀺され、起動・線集を止めるこずはありたせん。䟋:
```json
{
"\\C-s": "save-buffer",
"C-x C-r": "mark-whole-buffer",
"\\C-_": ""
}
```


elecxzy Screenshot
elecxzy Screenshot
elecxzy Screenshot
elecxzy Screenshot
elecxzy Screenshot
elecxzy Screenshot
elecxzy Screenshot

### MCP サヌバヌ統合

`elecxzy` は MCP サヌバヌずしお動䜜したす。お䜿いの AI アシスタントGoogle Antigravity や Claude Desktop/Code 等ず連携させるこずで、AI が開いおいるバッファの内容を読み取ったり、盎接線集したりずいった匷力な゚ヌゞェント操䜜が可胜になりたす。

> [!IMPORTANT]
> MCP サヌバヌを起動する前に、`蚭定サむドバヌ → MCP` の **Allowed Save Directories**たたは `config.json` の `mcpAllowedDirectories`に保存を蚱可するディレクトリを登録しおください。MCP の `save_file` ツヌルは、登録されたいずれかのディレクトリ配䞋にしか曞き蟌めたせん。リストが空、たたは存圚しないパスを含む堎合、`M-x mcp-start` は起動を䞭断し、゚コヌラむンに案内を衚瀺したす。

#### 蚭定方法 (Google Antigravity / Claude Desktop / Claude Code)

`claude_desktop_config.json` や、Google Antigravity の蚭定セクションに以䞋のいずれかの内容を参考にしお远加しおください

```json
{
"mcpServers": {
"elecxzy": {
"command": "C:\\path\\to\\elecxzy\\elecxzy.exe",
"args": ["C:\\path\\to\\elecxzy\\resources\\app.asar"],
"env": {
"ELECXZY_MCP_MODE": "true",
"ELECTRON_RUN_AS_NODE": "1"
}
}
}
}
```

```json
{
"mcpServers": {
"elecxzy": {
"command": "C:\\Users\\...\\AppData\\Local\\Programs\\elecxzy\\elecxzy.exe",
"args": ["C:\\Users\\...\\AppData\\Local\\Programs\\elecxzy\\resources\\app.asar"],
"env": {
"ELECXZY_MCP_MODE": "true",
"ELECTRON_RUN_AS_NODE": "1"
}
}
}
}
```

### 技術スタック

- **プラットフォヌム**: Electron
- **フロント゚ンド**: React, TypeScript
- **スタむリング**: Styled-components

### コマンド䞀芧

すべおのコマンドずキヌバむンドの詳现に぀いおは、以䞋をご参照ください。
👉 **[COMMANDLIST.md](./COMMANDLIST.md)**

---

## FAQ

### English

**Q: Is word wrap (wrapping at the window edge) supported?**

A: We currently have no plans to support dynamic word wrap. Implementing line folding requires complex rendering calculations, which would negatively impact the predictability of the virtual rendering system and overall maintainability. As an alternative, please use the **`M-q` (Fill Paragraph)** command to perform hard-wrapping, enable **`auto-fill-mode`** to automatically insert newlines as you type, or use **`C-;` (Show Line Expansion)** to temporarily view truncated lines in an overlay.

**Q: Horizontal scrolling with my mouse tilt-wheel doesn't work.**

A: Depending on your environment, mouse utility software (e.g., Logi Options) may block horizontal scroll signals (deltaX) for unrecognized applications. You can horizontally scroll by holding the **Shift** key while rotating the vertical wheel.

**Q: The cursor is misaligned when using "MS Gothic" or "MS Mincho" fonts.**

A: This behavior is due to conflicting legacy bitmap data within these older fonts and the modern Canvas-based text measurement. For proper cursor alignment, we recommend using modern monospace fonts such as **BIZ UDGothic**.

**Q: I see leftover files named `..tmp-*` in my edit folder. Are they safe to delete?**

A: Yes, you can delete them safely. elecxzy uses an atomic-save pattern (write to a temp file, then rename) to prevent file corruption on crashes, and these temp files are normally cleaned up automatically. If one remains, it usually means antivirus software or a cloud-sync tool (e.g., OneDrive, Dropbox, Google Drive) briefly locked the temp file and the rename step failed — your original file is unaffected, but the temp file got stranded. If this happens often, add the folder you edit in to the exclusion list of your antivirus or cloud-sync tool.

### 日本語

**Q: 右端で折り返し衚瀺はできないのですか**

A: 珟時点では、りィンドり端での動的な折り返し゜フトラップには察応しおいたせん。折り返し凊理の実装は、仮想レンダリングにおける座暙蚈算の耇雑化を招き、実行速床やコヌド保守性の䜎䞋に繋がるためです。代替手段ずしお、**`M-q` (Fill Paragraph)** コマンドによる敎圢、入力に远埓しお自動的に改行を挿入する **`auto-fill-mode`**、たたは右端で切れた行を䞀時的に展開衚瀺する **`C-;` (Show Line Expansion)** をご利甚ください。

**Q: マりスのチルトホむヌルを倒しおも氎平スクロヌルが動䜜したせん。**

A: 䞀郚のマりスナヌティリティ゜フト䟋Logi Optionsがむンストヌルされおいる環境では、アプリケヌションに察する氎平スクロヌル信号がブロックされる堎合がありたす。**Shiftキヌを抌しながらホむヌルを瞊に回転**させるこずで、氎平スクロヌルが可胜です。

**Q: 「MS ゎシック」や「MS 明朝」を䜿うず、カヌ゜ルの䜍眮がずれたす。**

A: 叀いフォントに内蔵されおいるビットマップ仕様ず、Canvas APIを利甚した文字幅蚈枬゚ンゞンずの間で生じる挙動です。正確なカヌ゜ル配眮のためには、衚瀺が滑らかな **BIZ UDGothic** などのモダンな等幅フォントの䜿甚を掚奚したす。

**Q: 線集フォルダに `..tmp-*` ずいうファむルが残っおいたす。削陀しおも問題ありたせんか**

A: 削陀しお問題ありたせん。elecxzy はクラッシュ時のファむル砎損を防ぐため、アトミック保存方匏䞀時ファむルに曞き蟌んでからリネヌムで保存しおおり、これらの䞀時ファむルは通垞自動的に削陀されたす。残っおいる堎合は、りむルス察策゜フトやクラりド同期゜フトOneDrive、Dropbox、Google Drive などが䞀時ファむルを瞬間的にロックし、リネヌム手順が倱敗したこずが原因です元のファむルには圱響ありたせん。頻繁に発生する堎合は、線集察象のフォルダをりむルス察策゜フトやクラりド同期゜フトの陀倖蚭定に远加しおください。

---

## License / ラむセンス

This software is released under the [MIT License](./LICENSE).
本゜フトりェアは [MITラむセンス](./LICENSE) のもずで公開されおいたす。

## Acknowledgements / 謝蟞

This application is deeply inspired by the design and philosophy of the following pioneering editors. We express our utmost respect and gratitude to their creators and contributors:

本アプリケヌションは、以䞋の先駆的な゚ディタの蚭蚈ず哲孊に深くむンスパむアされおいたす。これらの優れた゜フトりェアを生み出した開発者およびコミュニティの皆様に、最倧限の敬意ず謝意を衚したす。

- **GNU Emacs**
- Copyright (C) 1985-2024 Free Software Foundation, Inc.
- Created by Richard Stallman

- **xyzzy**
- Copyright (c) 1996-2005 Tetsuya Kamei
- Copyright (c) 2012-2014 xyzzy Project