The sheetui user interface is loosely inspired by vim. It is a modal interface that is entirely keyboard driven. At nearly any time you can type `Alt-h` to get some context sensitive help.
### Navigation Mode
The interface will start out in navigation mode. You can navigate around the table and between the sheets using the following keybinds:
**Cell Navigation**
*`h`, ⬆️, and `TAB` will move one cell to the left.
You can prefix each of the keybinds above with a numeric prefix to do them that many times. So typing `123h` will move to the left 123 times. Hitting `Esc` will clear the numeric prefix if you want to cancel it.
*`e` or `i` will enter CellEdit mode for the current cell.
*`Ctrl-h` will shorten the width of the column you are on.
*`Ctrl-l` will lengthen the width of the column you are on.
**Other Keybindings**
*`Ctrl-s` will save the sheet.
*`q` will exit the application.
*`:` will enter CommandMode.
<aside>Note that for `q` this will not currently prompt you if the sheet is not saved.</aside>
### CellEdit Mode
You enter CellEdit mode by hitting `e` or `i` while in navigation mode. Type what you want into the cell.
Starting with:
*`=` will treat what you type as a formula.
*`$` will treat it as us currency.
Typing a number will treat the contents as a number. While typing non-numeric text will treat it as text content. <aside>We do not yet support modifyint the type of a cell after the fact. We may add this in the future.</aside>
For the most part this should work the same way you expect a spreadsheet to work.
*`Enter` will update the cell contents.
*`Esc` will cancel editing the cell and leave it unedited.
*`write [path]` save the current spreadsheet. If the path is provided it will save it to that path. If omitted it will save to the path you are currently editing. `w` is a shorthand alias for this command.
*`insert-rows [number]` Inserts a row into the sheet at your current row. If the number is provided then inserts that many rows. If omitted then just inserts one.
*`insert-cols [number]` Just line `insert-rows` but for columns.
<aside>Note that in the case of `quit` and `edit` that we do not currently prompt you if the current spreadsheet has not been saved yet. So your changes will be discarded if you have not saved first.</aside>