adsr/mle logo

adsr/mle

Free

flexible terminal-based text editor (C)

FreeFree tier
Inputs: text, codeOutputs: text
Type
Open Source

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

Small codebase (~12k SLOC) for hackability
Full UTF-8 support and syntax highlighting
Stackable key maps (modes) for custom workflows
Extensible via Lua scripting and scriptable rc files
Key macros and window splitting
Regex search and replace with incremental search
Large file support with linear undo/redo
Multiple cursors and auto indent
Headless mode for non-interactive use
Navigation via ctags, less, fuzzy file search (fzf), file browsing (tree), grep, and perl string manipulation

Pros & Cons

Pros
  • 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)
Cons
  • 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

Best For

Editing code in terminal environmentsQuick text file editing with minimal dependenciesRemote server editing via SSHScriptable text processing with headless modeCustomizable editor for power users preferring terminal-based tools

FAQ

What platforms does mle support?
mle runs on Linux, Windows (via Cygwin or WSL), FreeBSD, macOS, and other Unix-like systems.
How can I extend mle?
mle is extensible via Lua scripting. You can also use a scriptable rc file and shell commands to enhance functionality.
Does mle support syntax highlighting?
Yes, mle includes syntax highlighting for various languages.
Can I use mle for large files?
Yes, mle has large file support and incremental search.
Is mle available via package managers?
Yes, mle can be installed using apt, dnf, pkg, yay, snap, nix-env, apk, xbps-install, brew, port, or Cygwin setup on various systems.