ait — small yet mighty GNU Emacs style editor

DESCRIPTION

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.

FEATURES

KeybindingsEmacs-like (see ait(1))
Windows8 preconfigured layouts
BuffersMultiple, with tab or external program switching
SearchIncremental forward and backward
ReplaceQuery replace
Shellesc x insert/replace, esc o open from command
UndoUnlimited undo/redo per buffer
Keyboard MacrosRecord, replay, save to registers
NavigationJump/zap to char, quick jump to line/word
HighlightingBasic Syntax and bracket
EncodingUTF-8/Unicode
Kill ringGNU Emacs-like
RegistersGNU Emacs-like
Dynamic ExpansionGNU Emacs-like

DEPENDENCIES

C99 compilerRequired
libcRequired
POSIX shRequired
termboxVendored
POSIX makeRecommended

DOWNLOAD

Since the demise of NotABug ait is only hosted on NetBSD's FTP server. You can download the latest version of ait here.

BUILDING

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

PLATFORMS

NetBSD, macOS, Linux, illumOS, OpenBSD, FreeBSD

HISTORY

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.

AUTHORS

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.

LICENSE

BSD 3-Clause.

SEE ALSO

ait(1)Online ait man page
attoPredecessor to ait
mg(1)Micro GNU Emacs (OpenBSD)
emacsGNU Emacs
mleSmall, flexible terminal editor
acmePlan 9 editor
vi(1)vi
vimvim
neovimneovim