Hello, I am announcing mle, a small terminal-based text editor written in C:
https://github.com/adsr/mle mle weighs in at ~10k sloc, has 1 external dep[0], is configurable, extensible / scriptable, and fast. The default setup is nano- or emacs-like, but it supports modes as well. I've used it daily for 2+ years. You can view some demos here: http://imgur.com/a/ZBmmQ ### Aims * Keep codebase small * Require minimal dependencies * Make extensibile and configurable * Favor simplicity over portability * Use shell commands to enhance functionality (e.g., grep, tree) * Enjoy writing C * Annoy the world with another text editor ### Features * Small codebase (~10k sloc) * Only 1 out-of-repo dependency (pcre) * Full UTF-8 support * Syntax highlighting (via pcre) * Stackable key maps (modes) * Extensible via any program capable of stdio * Scriptable rc file * Built-in text editing language (lel) * Key macros * Multiple splittable windows * Regex search and replace (with capture groups) * Large file support (beats vim in this benchmark http://i.imgur.com/VGGMmGg.gif) * Incremental search * Linear undo and redo * Multiple cursors * Headless mode * Movement via less * Fuzzy file search via fzf * File browsing via tree * File grep via grep * Decently portable (tested on Linux, cygwin, macOS) ### Notes * There is a TODO list here[1]. * The editor back-end, mlbuf[2], is a standalone library which can be repurposed. * mlbuf's main data structure is a linked list of C strings, similar to nano. * The built-in editing language, lel, is an experiment. I question whether it belongs. * There is a fork of mle called eon[3] which adds mouse support, Lua plugins, and notepad-like defaults. As always, patches and feedback are welcome. Thanks, Adam [0] pcre; termbox and uthash are included in-repo [1] https://github.com/adsr/mle/blob/1e9a467/mle.h#L637 [2] https://github.com/adsr/mlbuf [3] https://github.com/tomas/eon