commands:
e [file] edit
E [file] edit non check flag
q quit
Q quit non check flag
f [file] filename
u undo
(.,.)p print
(.,.)l print with special
(.,.)n print with numbers
(.,.)d delete
(.,.+1)j join
(.)kx set mark
(.,.)maddr move
(.,.)taddr copy (transfer)
(1,$)w [file] write file
($)r [file] read file
($)= get number
short addr:
, 1,$
,addr 1,addr
addr, addr,addr
; .,$
;addr .;addr
addr; addr;addr
syntax:
<command> ::= <e> | <E> | <q> | <Q> | <f> | <u>
| <p> | <n> | <d> | <j> | <w> | <=> | <l>
| <null> | <k> | <m> | <t>
<e> ::= "e" | "e" " " <param>
<E> ::= "E" | "E" " " <param>
<q> ::= "q"
<Q> ::= "Q"
<f> ::= "f" | "f" " " <param>
<u> ::= "u"
<p> ::= "p" | <range> "p" | <arg> | "'" <letter>
<n> ::= "n" | <range> "n"
<d> ::= "d" | <range> "d"
<j> ::= "j" | <range> "j"
<t> ::= "t" <num> | <range> "t" <num>
<m> ::= "m" <num> | <range> "m" <num>
<w> ::= "w" | <range> "w" | <range> "w" " " <param> | "w" " " <param>
<r> ::= "r" | <arg> "r" | <arg> "r" " " <param> | "r" " " <param>
<=> ::= "=" | <arg> "="
<l> ::= "l" | <range> "l"
<k> ::= "k" <letter> | <arg> "k" <letter>
<null> ::= ""
<range> ::= <del>
| <arg> <del>
| <del> <arg>
| <arg> <del> <arg>
| <arg>
<arg> ::= <num> | <spec> | <expr> | <exprspec>
<expr> ::= <num> <opseq> | <num> <opseq> <expr>
<exprspec> ::= <spec> <opseq> | <spec> <opseq> <expr>
<opseq> ::= <op> | <op> <opseq>
<op> ::= "+" | "-"
<num> ::= <digit> <num> | <digit>
<digit> ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
<spec> ::= "$" | "."
<del> ::= "," | ";"
<param> ::= <noalpha> <param> | <noalpha>
<noalpha> ::= <letter> | <Letter> | <digit>
<letter> ::= "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" | "j"
| "k" | "l" | "m" | "n" | "o" | "p" | "q" | "r" | "s" | "t"
| "u" | "v" | "w" | "x" | "y" | "z"
<Letter> ::= | "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I"
| "J" | "K" | "L" | "M" | "N" | "O" | "P" | "Q" | "R" | "S"
| "T" | "U" | "V" | "W" | "X" | "Y" | "Z"
exampla:
,2n 1,$-1-1-1+10-1-1j ,w kek.c 4 $-1 ;.p q ,n $,$p $,p