The development of Elvish is driven by a set of ideas, a
design philosophy.
- The user interface should be usable without any customizations. It should
be simple and consistent by default:
- Prefer to extend well-known functionalities in other shell to inventing
brand new ones. For instance, in Elvish Ctrl-R summons the "history
listing" for searching history, akin to how Ctrl-R works in bash, but
more powerful.
- When a useful feature has no prior art in other shells, borrow from other
programs. For instance, the navigation mode
(../learn/cookbook.html#navigation-mode), summoned by Ctrl-N, mimics
Ranger (http://ranger.nongnu.org); while the "location mode"
used for quickly changing location, mimics location bars in GUI browsers
(and is summoned by the same key combination Ctrl-L).
- Customizability should be achieved via progammability, not an enormous
inventory of options that interact with each other in obscure ways.