Current bindings in BETH
-------------------------
Mouse bindings are same as class bindings for Text,
with the following additions:
Button3			paste-selection
Button1-Delete		delete-selection

Text = text binding (sometimes two keys bind to the same fn)
Emacs = gosmacs binding (blank means it is same as text, * means not included)
TF = text function
GF = gosmacs function (' means it is same as text)
EF = entry function (' means it is same as text, * means not included)
UNI = might be useful as parm to universal-argument
ALL = might be useful as parm to All-argument

  Control	Meta		Control-Shift	Meta-Shift	Meta-Control
------------------------------------------------------------------------------
b BACKWARD-char	-word			***		***	GOTO-buffer
f FORWARD -	-			***		***		***
d DELETE  -	-		    -region	    -expression		***
h BACKSPAC-	-		    -		    -		COMMAND-help
t TRANSPOS-	-			***		***	LOAD-text
a BEGIN   -line	ABBREV-add	    -		    -		    -balance
e END     -	ERROR-next	    -		    -		COMMAND-exec
u UNIVERSAL-arg	WORD-uppercase	KILL-		    -		UNDO-perform
c CLEAR-select	    -capitalize		***		***	CONTROL-toggle
l PAGE-center	    -lowercase		***		***	UNDO-show-log
z     -down	    -up			***		***		***
v PAGE-next	    -prev		***		***	FILE-visit
n NEXT    -line	    -int-shown	    -		    -interp		***
p PREVIOUS-	    -		    -		    -		COMMAND-print
s SEARCH-ford	FILE-old-save	SEARCH-old	FILE-save		***
r       -revers	    -read	      -old-rev	    -old-read		***
o OPEN  -	OVERWRITE-togle	COLLAPSE-region	    -select	EXPAND-ALL
y YANK-selectn	GRID-y		      -ALL-	    -ALL-filler	COLLAPSE-ALL
x EXCHANGE-mark	    -x			***		***	COMMAND-xview
g ABORT-functn	GOTO-line		***		***		***
i INDENT-region	WINDOW-raise		***	    -iconify	FILE-insert
j SELECT-	ADJUST-paragraf 	***	SELECT-balance		***
k KILL  -line	KEY-all-shown	SELECT-line	KEY-all		UNDO-kill-log
m NEW   -	WINDOW-move-shn		***	    -window	COMMAND-make
q QUOTE -char	QUIT-interp		***		***		***
w DELETE-region	SELECT-all	      -region		***	COMMAND-wish

Text		Entry	Emacs	TF				ALL	UNIV
-----------------------------------------------------------------------------
Text Bindings:
----------------
[regexp .]	'	'	self-insert			A	U
Escape		'	C-X C-n	toggle-text-and-entry		A	U?
C-Delete 	'		delete-selection
C-space		'	'	set-mark			A
Tab		'	'	tab-to-tab-stop/completion	A	U?

C-a	S-Left	'	'	beginning-of-line		A
C-A			Esc-[	beginning-of-region		A
M-a				abbrev-add			A
M-A				beginning-of-balance		A

C-b	Left	'	'	backward-char			A	U
M-b		'	'	backward-word*7			A	U
M-C-b			C-x C-b	switch_beth_interp

C-c		'	*	clear-selection
M-c		'	'	capitalize-word*7		A	U
M-C-c			*	toggle-control*5

C-d		'	'	delete-char			A	U
C-D				delete-region-end		A
M-d		'	'	delete-next-word*7		A	U
M-D				delete-balance-end		A

C-e	S-Right	'	'	end-of-line			A
C-E			Esc-]	end-of-region			A
M-e			C-X C-n	next-error			A?	U?
M-E				end-of-balance			A
M-C-e			Esc-!	exec-command			A

C-f	Right	'	'	forward-char			A	U
M-f		'	'	forward-word*7			A	U

C-g		'	'	cancel*4			A
M-g			*3	goto-line			A

C-h	Delete	'	'	delete-backward-char		A	U
C-H				delete-region-beginning		A
M-h		'	'	delete-previous-word*7		A	U
M-H				delete-balance-beginning	A
M-C-h			C-h	help				A?

C-i			*	indent-region			A
M-i			*	raise_window			A
M-I			*	iconify_window			A
M-C-i			C-x i	insert-file

C-j			*	select_region			A
M-j			'	adjust_selection		A
M-J				select-balance			A
M-j				add-text-bindings		A
M-J				add-balance-bindings		A

C-k		'	'	kill-line			A	U
C-K	(C-k)*6	'	*	select-line			A	U
M-k		'	*	send-to-all-shown-interps
M-K		'	*	send-to-all-interps
M-C-k			*	kill-undo-log			A

C-l		'	'	recenter			A
M-l		'	'	case-word-lower*7		A	U
M-C-l			*	last-log			A

C-m	Return	*	'	newline				A	U
M-m				move-under-window		
M-M				move-under-mapped-window
M-C-m		'	C-x C-e	make				A?

C-n	Down		'	next-line			A	U
C-N				next-region			A	U
M-n			*	next-mapped-window*5
M-N			C-x C-n	next-window*5

C-o		*	'	open-line			A	U
M-o		'	M-a	overwrite-mode			A	U?
C-O				collapse-region			A	U
M-O				collapse-selection
M-C-o				expand-all			A

C-p	Up		'	previous-line			A	U
C-P				previous-region			A	U
M-p			*	previous-mapped-window*5
M-P			C-x C-p	previous-window*5
M-C-p			C-P	print-region			A

C-q		'	'	quoted-insert			A	U??
M-q			C-x C-c	quit				A

C-r	S-Find		'	reverse-inc-search		A
C-R			C-r C-r	reverse-search-prev		A
M-r			C-x C-r	read-file
M-R			'	revert-file			A

C-s     Find		'	incremental-search		A
C-S 			C-s C-s	search-previous			A
M-s			C-x C-s	save-file			A
M-S			C-x C-w	save-file-prompt
M-C-s			'	regexp-search			A

C-t		'	'	transpose-chars			A	U
M-t		'	'	transpose-words*7		A	U

C-u			'	universal-argument		A
C-U				kill-region			A
M-u		'	'	case-word-upper*7		A	U
M-U				kill-balance			A
M-C-u		*	^X-^U	undo				A	U

C-v	Next		'	page-up				A	U
M-v	Prior		'	page-down			A	U
M-C-v			C-x C-v	visit-file

C-w 		'	'	kill-region			A
C-W Select (C-w *6) '	*	select-region
M-w    S-Select ' 	*	select-all
M-C-w				wish-command			A

C-x		'	C-x C-x	exchange-point-and-mark		A	U?
M-x			?	toggle-horizontal-grid		A	U?
M-C-x			C-x 2	browse-selection

C-y	Insert	'	'	yank-selection			A	U
M-y			?	toggle-vertical-grid		A	U?
C-Y				collapse-all-regions		A
M-Y				collapse-all-between-regions	A
M-C-y				collapse-all			A

C-z			'	scroll-one-line-up		A	U
M-z			'	scroll-one-line-down		A	U

M-,	S-Up		'	beginning-of-page		A
M-.	S-Down		'	end-of-page			A
M-<	S-Prior		'	beginning-of-buffer		A
M->	S-Next		'	end-of-buffer			A

C-[	C-Up		C-x C-z	shrink-window-rows		A	U
M-[	M-Up		*	move_window_up			A	U
M-C-[	M-C-Up		*	move_window_top_edge		A

C-]	C-Left		C-x {	shrink-window-columns		A	U
M-]	M-Left		*	move_window_left		A	U
M-C-]  M-C-Left		*	move_window_left_edge		A

C-{	C-Down	'	C-x z	enlarge-window-rows		A	U
M-{	M-Down		*	move_window_down		A	U

C-}	C-Right	'	C-x }	enlarge-window-columns		A	U
M-}	M-Right		*	move_window_right		A	U

Search Entry Bindings: (After C-[rsRS], these bindings take effect)
(These are in addition to normal entry bindings.)
----------------
C-c			M-q M-r	replace-string			A
C-C			*	replace-with-prev-string	A
C-r	S-Find		'	reverse-search-again		A
C-s	Find		'	forward-search-again		A

Replace Bindings: (After C-[cC], these bindings take effect)
(These are in addition to normal entry bindings and Search Entry bindings).
----------------
C-c			M-q n	replace-this-string		A
C-C			M-q a	replace-all-strings		A

*1 Note that Ctrl-k works slightly differently than in emacs. It does not
forget prev killed lines when the cursor is moved; they remain in the killbuffer
For cut/paste jobs, it is recommended you do a Ctrl-C (to clear the selection)
before killing.

*3 BETH's goto-line is more powerful than Emacs'. It takes any index accepted by
the text widget (insert, sel.first +1 chars, etc.) or it takes a single int
(which gets converted to int.0 linestart)

*4 Control-g destroys all entry widgets, unlike Return, which usually
destroys only the active one.

*5 These functions make use of tk's global grab facility, to focus the input
in a window not underneath the nouse pointer.

*6 Only available in browse mode

*7 Note that Tk's Text widget has a slightly different view of words than Emacs.
In Tk a word is a sequence of letters, numbers, and _, ***OR*** a single
character that is not a letter, number, or _. Thus word-traversal functions
behave slightly differently than expected, but they are just as useful.


------------
Unipress Bindings

Global Bindings:
key		binding
---		-------
^J              newline-and-indent
^X-^E           new-compile-it
^X-^K           kill-compilation
^X-^N           new-next-error
^X-^O           use-old-buffer
^X-!            execute-monitor-command
^X-(            start-remembering
^X-)            stop-remembering
^X-1            delete-other-windows
^X-2            split-current-window
^X-e            execute-keyboard-macro
Esc-Esc-        execute-mlisp-line
Esc-^^          case-region-invert
Esc-!           line-to-top-of-window
Esc--           meta-minus
Esc-0..Esc-9    meta-digit
Esc-?           apropos

Esc-j           indent-C-procedure
Esc-x           execute-extended-command
^_              return-to-monitor


GNU Bindings
------------
Global Bindings:

C-c		mode-specific-command-prefix
C-x		Control-X-prefix
C-z		suspend-emacs
C-]		abort-recursive-edit

C-c RET		x-flush-mouse-queue

C-h v		describe-variable
C-h w		where-is
C-h t		help-with-tutorial
C-h s		describe-syntax
C-h n		view-emacs-news
C-h C-n		view-emacs-news
C-h m		describe-mode
C-h l		view-lossage
C-h f		describe-function
C-h d		describe-function
C-h k		describe-key
C-h c		describe-key-briefly
C-h b		describe-bindings
C-h a		command-apropos
C-h C-w		describe-no-warranty
C-h C-d		describe-distribution
C-h C-c		describe-copying
C-h ?		help-for-help
C-h C-h		help-for-help

C-x C-@		x-flush-mouse-queue
C-x C-a		add-mode-abbrev
C-x C-d		list-directory
C-x C-e		eval-last-sexp
C-x C-h		inverse-add-mode-abbrev
C-x TAB		indent-rigidly
C-x C-n		set-goal-column
C-x C-p		mark-page
C-x C-q		toggle-read-only
C-x C-r		find-file-read-only
C-x C-z		suspend-emacs
C-x Esc		repeat-complex-command
C-x $		set-selective-display
C-x '		expand-abbrev
C-x (		start-kbd-macro
C-x )		end-kbd-macro
C-x +		add-global-abbrev
C-x -		inverse-add-global-abbrev
C-x .		set-fill-prefix
C-x /		point-to-register
C-x 2		split-window-vertically
C-x 4		ctl-x-4-prefix
C-x 5		split-window-horizontally
C-x ;		set-comment-column
C-x <		scroll-left
C-x =		what-cursor-position
C-x >		scroll-right
C-x `		next-error
C-x a		append-to-buffer
C-x d		dired
C-x e		call-last-kbd-macro
C-x f		set-fill-column
C-x g		insert-register
C-x h		mark-whole-buffer
C-x j		register-to-point
C-x l		count-lines-page
C-x m		mail
C-x n		narrow-to-region
C-x p		narrow-to-page
C-x q		kbd-macro-query
C-x r		copy-rectangle-to-register
C-x w		widen
C-x x		copy-to-register

Esc-C-@		mark-sexp
Esc-C-a		beginning-of-defun
Esc-C-c		exit-recursive-edit
Esc-C-d		down-list
Esc-C-e		end-of-defun
Esc-C-h		mark-defun
Esc-TAB		lisp-complete-symbol
Esc-LFD		indent-new-comment-line
Esc-C-n		forward-list
Esc-C-p		backward-list
Esc-C-t		transpose-sexps
Esc-C-u		backward-up-list
Esc-C-v		scroll-other-window
Esc-C-w		append-next-kill
Esc-Esc		eval-expression
Esc-C-\		indent-region
Esc-SPC		just-one-space
Esc-$		spell-word
Esc-'		abbrev-prefix-mark
Esc-(		insert-parentheses
Esc-)		move-past-close-and-reindent
Esc-,		tags-loop-continue
Esc--		negative-argument
Esc-.		find-tag
Esc-/		dabbrev-expand
Esc-0 .. Esc-9	digit-argument
Esc-;		indent-for-comment
Esc-=		count-lines-region
Esc-@		mark-word
Esc-\		delete-horizontal-space
Esc-^		delete-indentation
Esc-g		fill-region
Esc-h		mark-paragraph
Esc-j		indent-new-comment-line
Esc-m		back-to-indentation
Esc-q		fill-paragraph
Esc-z		zap-to-char
Esc-~		not-modified

C-x 4 .		find-tag-other-window
C-x 4 a		add-change-log-entry-other-window
C-x 4 b		switch-to-buffer-other-window
C-x 4 d		dired-other-window
C-x 4 m		mail-other-window

Esc-a           backward-sentence
Esc-e           forward-sentence
Esc-k		kill-sentence
C-x DEL		backward-kill-sentence
