{"id":22373770,"url":"https://github.com/0xgingi/phantom","last_synced_at":"2025-07-30T21:32:47.142Z","repository":{"id":265788103,"uuid":"862889998","full_name":"0xGingi/phantom","owner":"0xGingi","description":"Phantom is a Lightweight terminal-based text editor written in Rust","archived":false,"fork":false,"pushed_at":"2024-09-30T14:38:09.000Z","size":86,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-30T23:37:12.152Z","etag":null,"topics":["code","editor","minimap","rust","tabs","terminal","text","texteditor","tui","tui-rs","vim"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/0xGingi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-25T11:09:16.000Z","updated_at":"2024-10-10T08:34:33.000Z","dependencies_parsed_at":"2024-12-02T00:15:11.627Z","dependency_job_id":null,"html_url":"https://github.com/0xGingi/phantom","commit_stats":null,"previous_names":["0xgingi/phantom"],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xGingi%2Fphantom","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xGingi%2Fphantom/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xGingi%2Fphantom/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xGingi%2Fphantom/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/0xGingi","download_url":"https://codeload.github.com/0xGingi/phantom/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228192341,"owners_count":17882756,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["code","editor","minimap","rust","tabs","terminal","text","texteditor","tui","tui-rs","vim"],"created_at":"2024-12-04T21:14:11.335Z","updated_at":"2025-07-30T21:32:47.130Z","avatar_url":"https://github.com/0xGingi.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# phantom\n\nphantom is a lightweight, terminal-based linux text editor written in Rust. It combines the simplicity of a basic text editor with some powerful features inspired by Vim.\n\n![image](https://github.com/user-attachments/assets/3f71a03d-68c3-4be0-b199-9e40a799d577)\n\n\n## Features\n\n- Simple and intuitive interface\n- Vim-like modal editing (Normal, Insert, Visual, and Command modes)\n- Syntax highlighting\n- System clipboard integration\n- Customizable (Currently Keybindings and Colors)\n- Directory Navigation (Sidebar)\n- Debug Output Menu\n- Search in file\n- Undo and Redo\n- Tabs\n- Minimap\n- Git status\n- Smart auto-indentation\n- Enhanced search with regex and case-insensitive options\n- Intelligent undo/redo with operation grouping\n- Swappable Themes\n\n## Cross-Plaform Status\n\n- Linux: 100%\n- MacOS: Not Planned\n- Windows: Not Planned\n\n## Installation\n\n### Arch User Repository\n\n#### Binary\n\n[![binary](https://img.shields.io/aur/version/phantom-editor-bin)](https://aur.archlinux.org/packages/phantom-editor-bin)\n\n#### Git\n\n[![git](https://img.shields.io/aur/version/phantom-editor-git)](https://aur.archlinux.org/packages/phantom-editor-git)\n\n### Binary Release\n\nDownload latest phantom executable from [releases](https://github.com/0xGingi/phantom/releases)\n\nPlace executable in /usr/bin (or in any folder in your path)\n\n### Build From Source\n\n1. Ensure you have Rust and Cargo installed on your system. If not, install them from [https://www.rust-lang.org/](https://www.rust-lang.org/).\n\n2. Clone this repository:\n   ```\n   git clone https://github.com/0xGingi/phantom.git\n   ```\n\n3. Navigate to the project directory:\n   ```\n   cd phantom\n   ```\n\n4. Build the project:\n   ```\n   cargo build --release\n   ```\n\n5. The executable will be created in the `target/release` directory.\n\n## Usage\n\nTo start phantom:\n```\nphantom\nphantom file.txt\nphantom ~/Project\n```\n\nIf a filename is provided, phantom will attempt to open that file. Otherwise, it will start with a blank document.\nIf a directory is provided, phantom will enter directory navigation mode\n\n## Default Keybinds and Commands\n\n### Config file locations\n\n- Linux: `~/.config/phantom`\n\n### Global\n\n- `Ctrl+Q`: Quit the editor\n- `?`: Show keybinding help\n\n### Normal Mode\n\n- `i` or `Insert` : Enter Insert mode\n- `a`: Enter Insert mode after the cursor\n- `o`: Insert a new line below and enter Insert mode\n- `O`: Insert a new line above and enter Insert mode\n- `dd`: Delete the current line\n- `yy`: Yank (copy) the current line\n- `p`: Paste after the current line\n- `Ctrl+Y`: Copy the current line to system clipboard\n- `Ctrl+P`: Paste from system clipboard below the current line\n- `v`: Enter Visual mode\n- Arrow keys: Move the cursor\n- `Home`: Move to the start of the line\n- `End`: Move to the end of the line\n- `Delete`: Delete the character under the cursor\n- `:`: Enter Command mode\n- `Ctrl+B`: Toggle debug menu visibility\n- `Ctrl+E`: Enter directory navigation mode\n- `/`: Enter Search mode\n- `n`: Go to next search result\n- `N`: Go to previous search result\n- `PageUp`: Scroll up one page\n- `PageDown`: Scroll down one page\n- `Ctrl+U`: Undo\n- `Ctrl+R`: Redo\n- `Ctrl+T`: New Tab\n- `Ctrl+W`: Close Tab\n- `F1`-`F9`: Switch to Tab 1-9\n- `Tab`: Swap Between Tabs\n- `Ctrl+M`: Toggle Minimap\n- `Ctrl+L`: Toggle line number mode (Off/Absolute/Relative/Hybrid)\n- `Ctrl+I`: Toggle auto-indentation\n- `Ctrl+J`: Toggle word wrap\n- `Shift+T`: Cycle through color themes\n- `?`: Show keybinding help\n- `Mouse Click`: Move cursor to clicked position\n- `Mouse Wheel`: Scroll up/down (3 lines)\n- `Shift+Mouse Wheel`: Scroll left/right (5 columns)\n\n### Insert Mode\n\n- `Esc`: Return to Normal mode\n- `Enter`: Insert a new line with smart auto-indentation\n- `Backspace`: Delete the character before the cursor\n- Any character key: Insert the character at the cursor position\n\n### Visual Mode\n\n- `Esc`: Return to Normal mode\n- `y`: Copy selected text to system clipboard\n- Arrow keys: Extend selection\n\n### Command Mode\n\n- `:w`: Save the current file\n- `:w filename`: Save the current file as 'filename'\n- `:q`: Quit the editor\n- `:wq`: Save and quit\n- `:e filename`: Open 'filename' for editing\n\n### Search Mode\n\n- `Enter`: Perform search and return to Normal mode\n- `Esc`: Cancel search and return to Normal mode\n- `Alt+I`: Toggle case-sensitive search\n- `Alt+R`: Toggle regex search mode\n- Any character: Live search as you type\n\n## Enhanced Features\n\n### Smart Auto-Indentation\n- Automatically indents new lines based on the previous line\n- Recognizes common programming constructs (if, for, while, brackets)\n- Supports both tabs and spaces with configurable indent size\n- Toggle with `Ctrl+I`\n\n### Advanced Search\n- **Live Search**: Results update as you type\n- **Case Sensitivity**: Toggle with `Alt+I` in search mode\n- **Regex Support**: Toggle with `Alt+R` in search mode\n- **Multiple Matches**: Finds all occurrences in the file\n- Use `n` and `N` to navigate between search results\n\n### Intelligent Undo/Redo\n- Groups consecutive character insertions/deletions into logical operations\n- Time-based grouping (operations within 1 second)\n- More intuitive undo behavior for better editing flow\n\n### Mouse Support\n- **Click to Position**: Click anywhere in the editor to move cursor\n- **Vertical Scrolling**: Mouse wheel scrolls up/down\n- **Horizontal Scrolling**: Shift+mouse wheel scrolls left/right\n- **Text Selection**: Drag to select text, right-click to copy\n\n### Line Numbers\n- **Absolute**: Shows actual line numbers (1, 2, 3...)\n- **Relative**: Shows distance from current line\n- **Hybrid**: Shows current line number + relative distances\n- Toggle modes with `Ctrl+L`\n\n### Color Themes\n- **One Dark** (default): Modern dark theme inspired by Atom/VS Code\n- **Dracula**: Popular purple and pink accent theme\n- **Solarized Dark**: Scientifically designed color scheme, easy on eyes\n- **Nord**: Arctic-inspired cool blue theme\n- **Monokai**: Classic warm colors, popular in Sublime Text\n- **Gruvbox**: Retro groove colors with warm, earthy tones\n- Cycle through themes with `Shift+T`\n\n## Debug Output\n\nphantom includes a debug output area that displays information about key presses, cursor position, and the results of operations like saving files.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0xgingi%2Fphantom","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F0xgingi%2Fphantom","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0xgingi%2Fphantom/lists"}