Thoughts on an ideal text editor #keys Key binds Follow convention where reasonable: SPACE and SHIFT-SPACE for going down and up half a screenful at a time. TAB in ''insert'' mode indents when there's only whitespace to it's ''left'', otherwise, alternates between completion options. TAB in ''normal'' mode alternates between indentation levels. [esdf] for movement. [zxcv] for what they're known for: z for undo x for cut c for copy v for paste /q./ to quit, where /./ is one of the following: q[ny] for Quit, No (to cancel) or Yes (to confirm) qw for Quit, but Write first /w./ to write, where /./ is one of the following: wo for Write, do Overwrite wq for Write, then Quit wt for Write to Temporary folder /tmp #motion Motion-command over command-motion? Added complexity: Keeping track of cursor position before the last motion. Payoff: You know what character's the next command applies to before running it. No need for character-wise commands such as x or ~. #posix Posix integration So much about vim is redundant when you have POSIX command line utilities. Why write a custom formatter when you could defer to fmt?