adsr/mle
Freeflexible terminal-based text editor (C)
About adsr/mle
mle is a small, flexible, terminal-based text editor written in C, designed for efficiency and extensibility. It runs on Linux, Windows (via Cygwin or WSL), FreeBSD, macOS, and other Unix-like systems. The editor features a small codebase (~12k SLOC) with minimal build-time and run-time dependencies, prioritizing simplicity and hackability. It supports full UTF-8, syntax highlighting, stackable key maps (modes), Lua scripting, key macros, window splitting, regex search and replace, large file handling, incremental search, linear undo/redo, multiple cursors, auto indent, headless mode, and integration with external tools like ctags, less, fzf, tree, grep, and perl for advanced navigation and editing tasks.
Key Features
Pros & Cons
- Very small and fast codebase, easy to understand and modify
- Minimal dependencies, builds quickly
- Runs on multiple platforms including Linux, macOS, Windows (Cygwin/WSL), FreeBSD
- Extensible via Lua scripting without heavy plugin systems
- Full UTF-8 support for international text
- Integrates well with common Unix tools (grep, fzf, tree, ctags, less)
- Terminal-only, no GUI version available
- Learning curve for key bindings and modal editing (if not familiar)
- Limited community and ecosystem compared to editors like Vim or Emacs
- No built-in package manager for extensions
- Documentation is primarily the README and man page