107 lines
3.0 KiB
Plaintext
107 lines
3.0 KiB
Plaintext
---- femto text editor ----
|
|
|
|
based on nano.
|
|
|
|
draws graphics using ANSI control sequences.
|
|
|
|
this means the terminal must be in raw mode with echo
|
|
turned off. the `femto` wrapper script achieves this
|
|
using `stty raw -echo` (it also restores the previous
|
|
terminal settings on exit).
|
|
|
|
---- WARNING ----
|
|
|
|
this is alpha quality software, still under active
|
|
development. although it seems to work fairly reliably
|
|
it has bugs!
|
|
|
|
please consider making backups (or using version control)
|
|
before using femto to modify important files.
|
|
|
|
---- getting started ----
|
|
|
|
you must provide a path to a file when starting femto:
|
|
|
|
./femto femto.tal
|
|
|
|
(if the file does not exist, femto will create it on save.)
|
|
|
|
the femto launcher script makes many assumptions:
|
|
|
|
- uxnasm and uxncli are both in the PATH
|
|
- femto.tal is in the same directory as femto
|
|
- femot.rom should be written in the same directory
|
|
|
|
once femto is not in active development a more robust
|
|
packaging process can be explored.
|
|
|
|
---- current status ----
|
|
|
|
- can't create new directories while saving
|
|
- doesn't support horizontal scrolling for long lines
|
|
- no search & replace
|
|
- no copy/paste
|
|
- doesn't support function keys, mouse, etc.
|
|
|
|
---- status line ----
|
|
|
|
the femto status line contains a lot of information:
|
|
|
|
1. if the file has unsaved changes (**) or not (--)
|
|
2. the file name (e.g. "scratch.tal")
|
|
3. the number of bytes/lines (e.g. "[49 bytes, 8 lines]"
|
|
4. the x/y cursor position (e.g. "(1,8)" for col 1, row 8)
|
|
5. whether tabs ("[t]") or spaces ("[s]") are inserted by tab key
|
|
6. how to run the help command (C-h)
|
|
|
|
---- special key bindings ----
|
|
|
|
C-g cancel (used with commands like save, search, etc.)
|
|
C-h help
|
|
C-x quit
|
|
C-o save
|
|
C-u undo
|
|
|
|
C-b move back one character (or LEFT ARROW)
|
|
C-f move forward one character (or RIGHT ARROW)
|
|
M-b move back by one word
|
|
M-f move forward by one word
|
|
C-n move down one line (or DOWN ARROW)
|
|
C-p move up one line (or UP ARROW)
|
|
M-v page up (or PAGE DOWN)
|
|
C-v page down (or PAGE UP)
|
|
|
|
C-a go to beginning of line (or HOME)
|
|
C-e go to end of line (or END)
|
|
M-< go to start of file
|
|
M-> go to end of file
|
|
M-g go to line
|
|
C-l center screen on cursor line
|
|
|
|
C-s search for a substring [1]
|
|
M-s search for matches using a regular expression [1]
|
|
|
|
C-d delete
|
|
M-c toggle color scheme
|
|
M-t toggle tabs-vs-spaces indentation
|
|
|
|
(C stands for Control)
|
|
(M stands for Meta, often Alt or Option)
|
|
|
|
---- search [1] ----
|
|
|
|
when searching femto will highlight matches and accepts
|
|
the following commands:
|
|
|
|
- C-g: cancel the search and restore the cursor
|
|
- Enter: end the search, leaving the cursor where it is
|
|
- n (or C-s): move forward to the next match, if any
|
|
- p (or C-r): move backwards to the previous match, if any
|
|
|
|
regex support is a work in progress, but basic regular expression
|
|
syntax is mostly working.
|
|
|
|
there are notable absences such as references to capture groups
|
|
(such as \1), repetitions (such as {n} or {m,n}), and symbolic
|
|
character classes (such as \w or \s).
|