# Grid Text Editor

The Grid text editor sits on [text/ed] and adds a visual and interactive
interface through the Grid [io/grid].

The basic idea is that text around current Edbuf selection is always displayed
using the whole grid except for the bottom line (the status line). There are
quick one letter keybindings for frequent and simple movements and
manipulations, but for fancier operations, you go in command mode with ":",
which simply prompts for a line to interpret (in which you'll probably use
commands from [text/ed], but you can also use others).

To use it, you load your EdBuf with some contents and then run "ged", which
enters the grid keybindings loop.

## text/ed bubbling up

Upon invoking "ged", the unit "text/ed" is called so that we bubble up its
convenience layer. [text/gedx] has the same behavior.

This is needed to avoid bizarre behavior caused by bubbling up other units
during development. A notable example is [asm/x86] which shadows "dl".

## Visual mode

Pressing "v" toggles the visual mode. When toggled on, current position is
marked and when moving selection afterwards, the range between the mark and the
selection is shown visually.

Some bindings such as "D" only work in visual mode.

## Keybindings

"C+" means "hold left Control while you press the key".

Descriptions below are kept short because those actions often correspond to
words in [text/ed], which you can use as a complete reference.

q   Quit
h   Go left
j   Go down
k   Go up
l   Go right
H   Go to the beginning of the line
L   Go to the end of the line
w   Advance to next word
s   Advance to next whitespace
r   Wait for keypress then replace character at cursor with that key
i   Insert
o   Insert line after
O   Insert line before
\   Join line
|   Split line
f   Find
n   Find next
z   zoom. Reframe the editor so that selection is in the middle of the screen
v   Toggle visual mode
y   Copy visual selection to clipboard
p   Paste clipboard to current position
D   Delete visually selected text
X   Delete character at cursor
]   move 1 page down
[   move 1 page up
:   enter a single line of command that will be interpreted as forth
C+b Print buffer list
C+] Cycle to next buffer in list
