boon/README.md

106 lines
3.5 KiB
Markdown
Raw Normal View History

2014-10-24 23:04:32 +02:00
Boon: An Ergonomic Command Mode for Emacs
==========================================
2014-10-20 14:25:43 +02:00
2014-10-26 12:31:08 +01:00
Boon brings modal editing capabilities to Emacs and...
2014-10-20 14:25:43 +02:00
2014-10-23 13:42:18 +02:00
- It tries to be as ergonomic as possible. (See below)
- It remains lightweight (~300 loc for its core.)
2014-10-26 12:31:08 +01:00
- It attempts to integrate with Emacs as smoothly as possible
2014-10-20 14:25:43 +02:00
2014-10-20 22:44:58 +02:00
Design
------
2014-10-20 14:25:43 +02:00
2014-10-20 22:44:58 +02:00
It is largely accepted that modal edition is more ergonomic than using
2014-10-26 12:31:08 +01:00
keychord. Boon attempts to make modal editing as comfortable as
2014-10-20 22:44:58 +02:00
possible, by adhering to the following design principles:
- Spacial allocation first, mnemonics second: the allocation of keys
to commands is based in priority on the locations of keys on the
2014-10-26 12:31:08 +01:00
keyboard. Whatever is printed on the key cap is a secondary concern.
2014-10-20 22:44:58 +02:00
- Easy finger rolls: common combination should either be left/right
hand alternation or easy one-hand rolls.
- Use of home row and strong fingers for the most used commands
- Easy navigation: many commands are bound to navigation. This
facilitates moving around. Because movements double up as
region-definitions, it makes manipulation commands (operators) more
powerful.
In command mode, movement keys are bound to the right hand, while text
manipulation is bound to the left hand.
Right-hand.
The leftwards (and upwards) movements are bound to the leftmost
fingers (index and middle finger), while rightwards (and downwards)
movements are bound to the rightmost fingers (ring finger and pinky.)
Additional movements are bound to the middle column.
Left-hand.
The most common edition commands (cut, paste, parenthesis
manipulation) are bound to the home row. The top row is (mainly) for
2014-10-26 12:31:08 +01:00
searching. The bottom row gives access to regular Emacs stuff (C-x
2014-10-20 22:44:58 +02:00
...) (C-c ...) and registers.
2014-10-23 09:54:14 +02:00
Installation/Configuration
--------------------------
2014-10-20 22:44:58 +02:00
2014-10-23 09:54:14 +02:00
REQUIREMENTS
- Emacs version >= 24.3
- Colemak layout
2014-10-20 22:44:58 +02:00
2014-10-26 12:31:08 +01:00
Install Boon (perhaps using
2014-10-24 21:16:16 +02:00
[![MELPA](http://melpa.org/packages/boon-badge.svg)](http://melpa.org/#/boon)),
and add the following to your configuration:
2014-10-20 22:44:58 +02:00
2014-10-24 22:40:05 +02:00
(require 'boon-colemak) ;; qwerty mode not implemented (contributions welcome)
(require 'boon-extras) ;; optional
(boon-mode)
2014-10-20 14:25:43 +02:00
You can jump-start by reading the
2014-11-03 09:15:55 +01:00
[cheat sheet](https://pdf.yt/d/hSKUThNNSxrNFXkQ) directly, but reading
2014-10-26 12:31:08 +01:00
through this modified (and shortened) version of the Emacs tutorial is
recommended:
2014-10-20 22:44:58 +02:00
2014-10-24 23:04:32 +02:00
[TUTORIAL.txt](TUTORIAL.txt)
2014-10-20 14:25:43 +02:00
2014-10-26 12:31:08 +01:00
Comparison with other modal layers for Emacs
2014-10-20 22:44:58 +02:00
---------------------------------------------
As far as I know, none of the other modal mode care about ergonomics
(beside being modal).
- Evil
2014-10-26 12:31:08 +01:00
Evil is a (quite) complete vi emulation layer for Emacs.
2014-10-24 22:54:56 +02:00
2014-10-26 12:31:08 +01:00
In boon, quite a bit of Emacs structure and user experience is
2014-10-24 22:54:56 +02:00
retained. Examples: the x key gives the C-x prefix map.
Interactive arguments are used for text objects.
2014-10-20 14:25:43 +02:00
2014-10-24 22:54:56 +02:00
Besides, Emacs is already customizable enough as it is: the core of
Boon is just 200 lines or so. Figuring out all the ins and outs of
Evil to do what I want would probably require more effort.
2014-10-20 14:25:43 +02:00
2014-10-20 22:44:58 +02:00
- God-mode https://github.com/chrisdone/god-mode
2014-10-20 14:25:43 +02:00
2014-10-24 22:54:56 +02:00
God-mode is similar to "sticky modifier keys" in principle. Its
simplicity allows to quickly get up to speed with it. However, it
lacks the main benefit of a true modal layer: text operators. (what
vi fans call a "language for text edition").
2014-10-20 14:25:43 +02:00
2014-10-20 22:44:58 +02:00
- Modal Mode http://retroj.net/modal-mode
2014-10-20 14:25:43 +02:00
2014-10-24 22:54:56 +02:00
Perhaps the work which is the closest to Boon in principle
2014-10-26 12:31:08 +01:00
(lightweight and integration with Emacs). However, as far as I can
2014-10-24 22:54:56 +02:00
see, there is no special attention to ergonomics.
2014-10-20 14:25:43 +02:00
2014-10-20 22:44:58 +02:00
- Modal Emacs https://github.com/joelmccracken/modal-emacs
2014-10-18 22:03:14 +02:00
2014-10-24 22:54:56 +02:00
Modal Emacs does not appear to be complete.