ait is inspired by GNU Emacs, acme, microEMACS, mg, mle, and vi/vim/neovim. Based on Atto, which itself derives from Anthony's Editor (1993). It was ported to Termbox2 and can be compiled with no dependencies other than libc. Instead of rewriting everything in C, ait allows you to use shell commands as a pseudo-extension language.
| Keybindings | Emacs-like (see ait(1)) |
| Windows | 8 preconfigured layouts |
| Buffers | Multiple, with tab or external program switching |
| Search | Incremental forward and backward |
| Replace | Query replace |
| Shell | esc x insert/replace, esc o open from command |
| Undo | Unlimited undo/redo per buffer |
| Keyboard Macros | Record, replay, save to registers |
| Navigation | Jump/zap to char, quick jump to line/word |
| Highlighting | Basic Syntax and bracket |
| Encoding | UTF-8/Unicode |
| Kill ring | GNU Emacs-like |
| Registers | GNU Emacs-like |
| Dynamic Expansion | GNU Emacs-like |
| C99 compiler | Required |
| libc | Required |
| POSIX sh | Required |
| termbox | Vendored |
| POSIX make | Recommended |
Since the demise of NotABug ait is only hosted on NetBSD's FTP server. You can download the latest version of ait here.
Building with make is preferred but optional. A portable shell script, build.sh, is provided for systems where make is not available. No configure step is needed in either case.
With make:
$ make $ make install
Without make:
$ sh build.sh $ sh build.sh install
NetBSD, macOS, Linux, illumOS, OpenBSD, FreeBSD
ait derives from Anthony's Editor by Anthony Howe (January 1993), later reworked as Atto by Hugh Barney (January 2017), and forked as ait by Kevin Bloom beginning in 2022. The name refers to small river islands.
That being said, parts of ait are written by all three: Anthony Howe (AE), Hugh Barney (atto), and Kevin Bloom (ait). Kevin Bloom is the author of ait, specifically.
BSD 3-Clause.
| ait(1) | Online ait man page |
| atto | Predecessor to ait |
| mg(1) | Micro GNU Emacs (OpenBSD) |
| emacs | GNU Emacs |
| mle | Small, flexible terminal editor |
| acme | Plan 9 editor |
| vi(1) | vi |
| vim | vim |
| neovim | neovim |