Dvorak keyboard layout

       ESC FFFFF FFFFF DEL
	 ` 12345 67890 [] BCK
       TAB ',.py fgcrl /= \
       CLK AoeuI dhtns -  ENT
       SHF ;qJkx bMwvz SHF
       CTL ALT SPC ALT CTL arrows

Commands are denoted here in these notes by ^, which signifies use
of Control, Alt, or a leading Escape before a key.  (Some Control
keys don't work the same in a Linux console; Escape always works.
Control-[ is the same as Escape.)

Non-command characters are inserted or searched for.
Self-insertion automatically cuts when cursor < mark.

There are multiple windows, views, and texts.  Every window has a view,
but not every view has a window.  Every view has a text and every text
has at least one view.  Some texts have files.  The cursor, mark, and
macro are local to their view.

* below means "must be this character".
() indicate synonyms
[;] indicate variants activated by ^Space, possibly with value
/  indicates behavior with mark unset / set

Command characters
*  ESC	function keys and query responses, ALT
*  Fk	global macro execute [start; repeat]
  ^@	(^Space)
  ^^	literal, control [; unicode]
* ^[	(ESC or "smaller font")
  ^]	move to corresponding or nearest bracket
*  TAB	tab / tab completion [align; set tab stop]
  ^P	select another window [closing current]
  ^Y	split window [vertically] / narrow to selection
  ^F	/ copy [pre/append]
  ^G	backward to line start [paragraph start; multiple lines]
  ^C	forward to line end [paragraph end; multiple lines]
  ^R	backward screen(s) [beginning of view]
  ^L	forward screen(s) [end of view]
  ^/	(^_) incremental search mode [regexp]
* ^?	(BCK) delete character before cursor
* ^+	-- larger font
  ^\	[quit without saving]
* ^A	synonym for ^/(^_)
  ^O	macro end, local macro execute [local macro start; repeat]
  ^E	shell [end children] / pipe clipbuffer to command
  ^U	undo [redo]
* ^I	(TAB)
  ^D	cut char [select whitespace] / cut [pre/append]
  ^H	backward char(s)
  ^T	forward char(s)
  ^N	backward word(s) [sentence]
  ^S	forward word(s) [sentence]
* ^-	-- smaller font
* ^_	(^/)
*  ENT	(^M) newline [open line]
  ^ENT	(^J) newline and alignment
  ^Q	suspend editor [quit]
* ^J	(^ENT)
  ^K	save all [single]
  ^X	get path / visit file [set path]
  ^B	paste / exchange with clip buffer [; register]
* ^M	(ENT)
  ^W	select other view [closing current]
  ^V	set/unset mark [select line / exchange mark with cursor; force unset]
  ^Z	recenter view [single window, reset display; go to line]
 ^Space	(^@) variant, beginning of value

Non-control characters -- commands must be [variants]
  =	[; set bookmark]
  -	[; goto bookmark]
  ;	[new anonymous text]
  '	[go to tag]
  ,	[fold view on indentation] / [fold selection]
  .	[unfold; unfold entire view] / [unfold selection once]
  0-9	decimal argument
  x 0-9 a-f A-F		hexadecimal argument
  unused: ` ~ ! @ # $ % & ( ) { } " <  >  | :

Missing features:
	multiple column characters (using wcwidth)
	^Space> and < could be indent/outdent on selection
		but it would be better to use sed!
	preserving window layouts
	moving to prior window
	saving, restoring, rewriting F-key definitions

Idioms
- search and replace: cut replacement text, search for first occurrence,
  then repeat ^B^F^/^/ to exchange target with replacement, restore
  replacement text in the clip buffer, and proceed to the next hit
- also, can pipe text through sed 's/X/Y/g' for global replacement
- also, can use a macro
- exchanging cursor and mark and then retyping with automatic cut
  is often faster than an explicit cut.
- going forward or back a half screenful: use ^R/^L, then ^Z


QWERTY->Dvorak command mapping

	qwert yuIop
	Asdfg hJkl;
	zxcvb nM,./

navigation:	G:t	C:y	R:o	L:p
		H:g	T:h	N:k	S:l
		Z:n
selection:	V:u	F:c	D:x	B:v
windows:	P:s	Y:d	W:f
files:		Q:q	K:w	X:e
others:		O:b	E:r	U:z


Unicode tips:
0x2000-206f	general punctuation
0x2100-22ff	math
0x2300-23ff	misc. technical
0x2400-24ff	printable control chars, boxed numbers and letters
0x2500-25ff	block graphics
0x2600-26b2	misc. symbols
0x2700-27ff	dingbats

Compose key sequences for Latin-1:

		0xa1 (¡) !!	0xa2 (¢) c/	0xa3 (£) l-
0xa4 (¤) ox	0xa5 (¥) Y=	0xa6 (¦)	0xa7 (§) so
0xa8 (¨) ""	0xa9 (©) OC	0xaa (ª) a_	0xab («) <<
0xac (¬) ,-	0xad (­) ---	0xae (®) OR	0xaf (¯) ^-
0xb0 (°)	0xb1 (±) +-	0xb2 (²) ^2	0xb3 (³) ^3
0xb4 (´) ''	0xb5 (µ) u/	0xb6 (¶) p!	0xb7 (·) ^.
0xb8 (¸) ,,	0xb9 (¹) ^1	0xba (º) o_	0xbb (») >>
0xbc (¼)	0xbd (½)	0xbe (¾)	0xbf (¿) ??
				0xc6 (Æ) AE
0xd0 (Ð) D-
						0xd7 (×) xx
				0xde (Þ) TH	0xdf (ß) ss
				0xe6 (æ) ae
0xf0 (ð)
						0xf7 (÷) :-
				0xfe (þ) th
(€) C=

0x203b ※  0x2230 ∰  0x237e ⍾  0x2615 ☕  0x2620 ☠  0x2767 ❧
