[[!meta title="On the design of text editors"]] [[!meta copyright="Copyright © 2021 Nicolas P. Rougier"]] [[!inline pages="internal(2021/info/design-nav)" raw="yes"]] # On the design of text editors Nicolas P. Rougier Text editors are written by and for developers. They come with a large set of default and implicit choices in terms of layout, typography, colorization and interaction that hardly change from one editor to the other. It is not clear if these implicit choices derive from the ignorance of alternatives or if they derive from developers' habits, reproducing what they are used to. Durint this talk, I will characterize these implicit choices and illustrate what are some alternatives using GNU Emacs. # Outline 1. Review of a "modern" code editor (5mn) 2. Introduction of an alternative using Emacs (5mn) ## Links from the slides: * [Elegant Emacs](https://github.com/rougier/elegant-emacs) (https://github.com/rougier/elegant-emacs) * [On the Design of Text Editors](https://arxiv.org/abs/2008.06030) (https://arxiv.org/abs/2008.06030) * [N Λ N O Emacs](https://github.com/rougier/nano-emacs) (https://github.com/rougier/nano-emacs) * [svg-lib (ELPA)](https://elpa.gnu.org/packages/svg-lib.html) (https://elpa.gnu.org/packages/svg-lib.html) * [nano-theme (ELPA)](https://elpa.gnu.org/packages/nano-theme.html) (https://elpa.gnu.org/packages/nano-theme.html) * [nano-modeline (ELPA)](https://elpa.gnu.org/packages/nano-modeline.html) (https://elpa.gnu.org/packages/nano-modeline.html) * [nano-agenda (ELPA)](https://elpa.gnu.org/packages/nano-agenda.html) (https://elpa.gnu.org/packages/nano-agenda.html) ## Contact information * Contact [nicolas.rougier@inria.fr](mailto:nicolas.rougier@inria.fr) * Follow my work at [github.com/rougier](https://github.com/rougier) * Support my work at [github.com/sponsors/rougier](https://github.com/sponsors/rougier) or [en.liberapay.com/rougier/](https://en.liberapay.com/rougier/) [[!inline pages="internal(2021/info/design-schedule)" raw="yes"]] [[!inline pages="internal(2021/info/design-nav)" raw="yes"]]