Hybrid terminal text editor (Vim-like commands, syntax highlighting, und o/redo). 100% vibe-coded by AI agents.
- Go 98.2%
- PowerShell 1.8%
- Update .gitignore to remove Python-specific entries and add Go build artifacts - Secure clipboard access in clipboard/clipboard_unix.go by using hardcoded trusted binaries to prevent command injection - Add path traversal protection in command/command.go for :e command using filepath.Clean and path validation - Fix security issues in ui/editor.go: implement path validation for file operations, use secure temporary file creation, validate executable paths during uninstall, and apply strict file permissions (0600) for sensitive files - Apply consistent file permission (0600) for saved files and backups in ui/editor.go - Format code using gp fmt to ensure consistent styling across all modified files Co-authored-by: qwen.ai[bot] <qwenlm-intl@service.alibaba.com> |
||
|---|---|---|
| .github/workflows | ||
| clipboard | ||
| command | ||
| config | ||
| docs | ||
| document | ||
| highlight | ||
| testdata/fuzz/FuzzApplyRules | ||
| ui | ||
| .gitignore | ||
| build-all.ps1 | ||
| easyedit.example.toml | ||
| fuzz_test.go | ||
| go.mod | ||
| go.sum | ||
| LICENSE | ||
| main.go | ||
| README.md | ||
๐งฉ EasyEdit
๐ค Vibe Coding Experiment โ No human-written code allowed.
Every line of this editor is authored by AI agents.
See who contributed โ
EasyEdit is a hybrid terminal text editor that offers stream processing capabilities โ functioning both as a fullโfeatured TUI editor and a nonโinteractive sedโstyle filter.
โจ Features
| Mode | Description |
|---|---|
| ๐ฅ๏ธ TUI Editor | Full terminal UI with syntax highlighting for 200+ languages, multiโcursor editing, undo/redo, and command mode |
| โก Stream Mode | Nonโinteractive stdin/stdout processing โ ideal for CI/CD, shell pipelines, and inโplace edits |
| ๐ฎ Vim Modes | Complete Vim-style mode switching (NORMAL/INSERT/VISUAL/COMMAND) with configurable behavior |
| ๐ฆ Gap Buffer | Efficient text storage for large files |
| ๐ Undo/Redo | Full history stack (Ctrl+Z / Ctrl+Y) |
| ๐ CrossโPlatform | Preโbuilt binaries available for 24+ platforms, including Linux, macOS, Windows, FreeBSD, ARM, RISCโV, and more |
๐ฎ Vim Mode Support
EasyEdit now supports complete Vim-style mode switching! Enable it in your configuration:
# ~/.easyedit.toml or %APPDATA%/easyedit/config.toml
vim_mode = true # Enable Vim modes (default: false)
show_mode = true # Show mode indicator in status bar (default: true)
show_line_num = true # Show line numbers (default: true)
Mode Types
- NORMAL - Navigation and commands (h/j/k/l, w/b, gg/G, etc.)
- INSERT - Text input (press
i,a,o, etc. from Normal mode) - VISUAL - Text selection (press
vorVfrom Normal mode) - COMMAND - Execute ex commands (press
:from any mode) - SEARCH - Search text (press
/from Normal mode)
Quick Reference
| Action | Normal Mode Key | Description |
|---|---|---|
| Enter Insert | i |
Insert before cursor |
| Append | a |
Append after cursor |
| New Line Below | o |
Open new line below |
| New Line Above | O |
Open new line above |
| Undo | u |
Undo last change |
| Redo | r |
Redo last change |
| Yank (Copy) | y |
Copy selection/text |
| Delete | d |
Delete selection/text |
| Paste | p |
Paste from clipboard |
| Visual Mode | v |
Enter visual mode |
| Visual Line | V |
Enter visual line mode |
| Word Forward | w |
Jump to next word |
| Word Backward | b |
Jump to previous word |
| Line Start | 0 |
Go to line beginning |
| Line End | $ |
Go to line end |
| File Start | gg |
Go to file beginning |
| File End | G |
Go to file end |
๐ Quick Start
๐ฅ Installation
Option 1: Download Prebuilt Binary (Recommended)
Visit the Releases page โ binaries are available for Linux, macOS, Windows, and many more.
Option 2: Go Install
go install github.com/0xA672/Easyedit@latest
Option 3: Build from Source
git clone https://github.com/0xA672/Easyedit.git
cd Easyedit
go build -o easyedit .
โถ๏ธ Usage Examples
Interactive Mode
easyedit # Open an empty buffer
easyedit main.go # Open an existing file
Stream Mode (sedโlike)
# Replace text in a pipeline
echo "hello world" | easyedit -s -e 's/world/Go/g'
# Delete lines matching a pattern
cat log.txt | easyedit -s -e '/DEBUG/d'
# In-place file editing
easyedit -s -i -e 's/foo/bar/g' file.txt
๐ Documentation
Detailed guides are available in the /docs folder:
๐ค Contributors Signature Wall
Every AI model that contributed to this project:
| Model | Provider | Contribution |
|---|---|---|
| DeepSeek-V4-Flash | DeepSeek AI | Core contributor โ syntax highlighting optimization, Vix language support |
| Qwen3.5 | Alibaba | Code review & maintenance |
| GPT-4.1 | OpenAI | Architecture design |
| Claude 4.7 | Anthropic | UI enhancements, Vix language support, Stream mode, multiโlanguage docs |
| Doubao | ByteDance | Documentation annotations |
๐ง Why โEasyEditโ?
- Easy to use interactively, and easy to script in pipelines.
- Built entirely by AI โ a living experiment in vibeโdriven development.
- Lightweight, fast, and portable โ a single binary.
Made with โค๏ธ using Go and Tcell