
# This file contains all of the editor's command and key linkages.
#
# It should be processed by the "mktbls" program, which produces the
#  headers #included by main.c
#
# All that is necessary to add a new function to the editor is to add
#  an entry to this file, write the function, make sure it's in the
#  makefile, and rebuild.  (This is not to be confused with adding a
#  new key binding, which can be done with the rebind command if it
#  was compiled in.)
#
# If you want to know which keyboard bindings are already taken, look
#  at nebind.h, after you build it.
#
# The entries are functions within the editor.  They _must_ match the
#  functions' names.  On the same line as the name is the set of flags
#  describing that function.
# Also accompanying each function is a list of english names  for the 
#  command, in double quotes, and a list of keys bound to the command,
#  in single quotes.  These are the default key bindings -- they can change
#  at runtime.  English names must be all lowercase.
# Any function, name, or key may be followed by a conditional, i.e. the
#  name of a preprocessor #define which must be defined non-zero for that
#  line to become part of the editor.  If a function name is made conditional,
#  the names and keys listed with it will be conditional also.
# The names and keys must be preceded by a tab character.
# Blank lines must be completely empty.
# For convenience only, this table is kept in roughly alphabetical order, 
#  by first character of function name.
#
# For example, consider the following entry:
#
# 	somefunc	ABS|MOTION		BSD|DOS
#		"funkycom"
#		'^X-F'
#		'FN-2'				DOS
#
# This says that somefunc() is an absolute motion command, that it should
#  only be included in the editor if we're running BSD or DOS, that its
#  english name as one would type on the command line is "funkycom", and
#  that it is bound to ^X-F, and also to function key 2 under DOS.
#
# Function flags have the following meanings:
#	REDO means the dotcmd command recorder should be halted, so that
#		the command can be redone.
#	UNDO means the undo stacks should be cleared, in preparation for
#		an undoable command.
#	OPER means the command is an "operator", that is, it acts on a region
#		demarcated by the current cursor postion and the cursor position
#		following a subsequent motion command.
#	MOTION means this command moves dot, and specifically is compatible
#		with the operator commands.
#	FL only occurs with MOTION, means that if the motion is an argument
#		to an operator, the operation should affect Full Lines
#	ABS only occurs with MOTION, means that the motion is absolute,
#		i.e. not relative to the current postion or screen.  It causes
#		the "lastdotmark", ldmark to be set to dot before the move
#		takes place.
#	GOAL signifies a motion that will attempt to retain the 
#		current column postition after the motion.
#	GLOBOK says the function can follow a global command
#		(e.g. the 'd' in "g/pattern/d")
#
#	This file was designed and constructed by Paul Fox for vile, (c)1990
#
#	The flags given in parentheses are "ex" flags, related to what
#		kind of line-range arguments the command can take.  Not all are
#		currently used or implemented, but they were defined in the command
#		table for the Steve Kirkendall's elvis editor, so I included them
#		here for completeness.
#
# $Log: cmdtbl,v $
# Revision 1.35  1992/03/13  08:10:37  pgf
# added ZERO flag to gomark, so ":0" can work
#
# Revision 1.34  1992/03/07  10:19:17  pgf
# added Eric Krohn's srcsearchword() functions.  All of this screen search
# stuff could be done with macros if variables worked right.
#
# Revision 1.33  1991/12/24  09:18:47  pgf
# added current/change directory support  (Dave Lemke's changes)
#
# Revision 1.32  1991/11/07  14:56:59  pgf
# added "pop" synonym
#
# Revision 1.31  1991/11/06  23:28:08  pgf
# getfence() will scan for a fence if not on one to begin with.  it'll
# scan in either direction, depending on arg to matchfence or matchfenceback
#
# Revision 1.30  1991/11/03  17:45:15  pgf
# change getfence to matchfence
#
# Revision 1.29  1991/11/01  14:21:17  pgf
# cleanup
#
# Revision 1.28  1991/10/31  02:36:14  pgf
# implement vi-like substagain
#
# Revision 1.27  1991/10/29  14:35:29  pgf
# implemented the & commands: substagain
#
# Revision 1.26  1991/10/29  03:08:54  pgf
# changes for new function keys (ESC O x and # x) bindings, for
# executing named registers, for loading named registers, and for
# saving the keyboard macro to a named register
#
# Revision 1.25  1991/10/26  00:13:48  pgf
# the sentence motions are now implemented
#
# Revision 1.24  1991/10/20  23:33:06  pgf
# made ^N, ^P, and ^T vi-compliant
#
# Revision 1.23  1991/09/17  13:02:57  pgf
# added write-all and brethren
#
# Revision 1.22  1991/09/10  00:40:05  pgf
# took out obsolete "showgmodes"
#
# Revision 1.21  1991/08/14  12:08:54  pgf
# showmodes command now does new-style show
#
# Revision 1.20  1991/08/12  15:06:21  pgf
# added ANSI_SPEC capability -- can now use the arrow keys from
# command or insert mode
#
# Revision 1.19  1991/08/07  11:56:58  pgf
# added RCS log entries
#
# revision 1.18
# date: 1991/08/06 15:55:01;
# added "Q!"
# 
# revision 1.17
# date: 1991/08/06 15:28:15;
# mode listing changes
# 
# revision 1.16
# date: 1991/07/23 11:10:51;
# made the top, bottom, and middle of screen commands (H,M,L) absolute
# 
# revision 1.15
# date: 1991/07/19 17:18:58;
# change over-wordy "end-of-line" and "begi..." to "eol" and "bol"
# 
# revision 1.14
# date: 1991/06/26 09:34:53;
# new, rationalized(?) names
# 
# revision 1.13
# date: 1991/06/16 17:41:39;
# added entab, detab, and trim operator commands
# 
# revision 1.12
# date: 1991/06/15 09:08:01;
# added new forwchar_to_eol, and backchar_to_eol
# 
# revision 1.11
# date: 1991/06/13 15:19:03;
# made "source" a synonym for "execute-file"
# 
# revision 1.10
# date: 1991/06/03 17:34:59;
# switch from "meta" etc. to "ctla" etc.
# 
# revision 1.9
# date: 1991/06/03 15:53:18;
# added "set-variable"
# 
# revision 1.8
# date: 1991/06/03 12:19:25;
# added some ifdefs for unresoved refs when TAGS, GLOBALS, or WORDPRO
# is turned off
# 
# revision 1.7
# date: 1991/06/03 10:27:54;
# added rebind-key synonym for bind-key, and
# took out named version and GLOBOK flag on "join", since it
# doesn't work after "g" command anymore (need to take a region to
# work now)
# 
# revision 1.6
# date: 1991/05/31 11:37:16;
# a bunch of changes for ex commands and line ranges
# 
# revision 1.5
# date: 1991/04/04 09:35:07;
# added filterregion, and some text improvements
# 
# revision 1.4
# date: 1991/04/04 09:31:59;
# added horiz. scrolling and window resizing commands
# 
# revision 1.3
# date: 1990/10/12 19:33:30;
# added ^A-/ for scrsearchpat
# 
# revision 1.2
# date: 1990/10/01 10:38:25;
# change execcmd to NEVER -- the routine itself has been ifdefed out
# 
# revision 1.1
# date: 1990/09/21 10:24:53;
# initial vile RCS revision
#

altbuff		NONE
	"alternate-buffer"		!FEWNAMES
	'^^'
append		REDO|UNDO
	"append-chars"			!FEWNAMES
	'a'
appendeol	REDO|UNDO
	"append-chars-at-eol"			!FEWNAMES
	'A'
apro		NONE			APROP|REBIND
	"apropos"
	"list-commands-apropos-to"
backchar	MOTION
	"backward-character"		!FEWNAMES
backchar_to_bol	MOTION
	"backward-character-to-bol"	!FEWNAMES
	'h'
	'^H'
	'^?'
	'FN-D'				ANSI_SPEC
backdelchar	REDO|UNDO
	"delete-previous-character"	!FEWNAMES
	'X'
backhunt	ABS|MOTION		!SMALLER
	"hunt-backward"
backhpage	NONE
	"previous-half-page"		!FEWNAMES
	"back-half-page"		!FEWNAMES
	"up-half-page"		!FEWNAMES
	'^U'
backline	GOAL|MOTION|FL
	"previous-line"			!FEWNAMES
	"back-line"			!FEWNAMES
	"up-line"			!FEWNAMES
	'k'
	'^P'
	'FN-A'				ANSI_SPEC
backbline	MOTION|FL
	"previous-line-at-bol"		!FEWNAMES
	"back-line-at-bol"		!FEWNAMES
	"up-line-at-bol"		!FEWNAMES
	'-'
backpage	MOTION
	"previous-page"			!FEWNAMES
	"back-page"			!FEWNAMES
	'^B'
backword	MOTION
	"previous-word"			!FEWNAMES
	"back-word"			!FEWNAMES
	'B'
backviword	MOTION
	"previous-punctuated-word"		!FEWNAMES
	"back-punctuated-word"		!FEWNAMES
	'b'
backsearch	ABS|MOTION
	"search-reverse"		!FEWNAMES
	'?'
bcsrch		MOTION
	"backward-char-scan"		!FEWNAMES
	'F'
bcsrch_to	MOTION
	"backward-char-scan-to"		!FEWNAMES
	'T'
bindkey		NONE			REBIND
	"bind-key"
	"rebind-key"
bktoshell	NONE			UNIX&&defined(SIGTSTP)
	"suspend-emacs"			!FEWNAMES
	'^Z'
cd		NONE
	"cd"
	"change-directory"
cntl_xf		NONE
	"cntl_x-prefix"			!FEWNAMES
	'^X'
chgchar		REDO|UNDO
	"change-char"			!FEWNAMES
	"delete-char-and-insert-chars"		!FEWNAMES
	's'
chgline		REDO|UNDO
	"change-line"			!FEWNAMES
	"delete-line-and-insert-chars"		!FEWNAMES
	'S'
chgtoeol	REDO|UNDO
	"change-to-eol"		!FEWNAMES
	"delete-to-eol-and-insert-chars"	!FEWNAMES
	'C'
clrmes		NONE
	"clear-message-line"		!FEWNAMES
consearch	ABS|MOTION
	"continue-search"		!FEWNAMES
	'n'
opercopy		OPER|(RANGE|EXTRA)
	"copy-til"
	"c"
kbd_mac_begin		NONE
	"begin-keyboard-macro"		!FEWNAMES
	'^X-('
kbd_mac_end		NONE
	"end-keyboard-macro"		!FEWNAMES
	'^X-)'
kbd_mac_exec		REDO
	"execute-keyboard-macro"	!FEWNAMES
	'^X-&'
kbd_mac_save		NONE
	"save-keyboard-macro"
	'^X-^'
cbuf1		REDO
	"execute-macro-1"		!FEWNAMES
	'FN-1'
	'FN-P'				ANSI_SPEC
cbuf2		REDO
	"execute-macro-2"		!FEWNAMES
	'FN-2'
	'FN-Q'				ANSI_SPEC
cbuf3		REDO
	"execute-macro-3"		!FEWNAMES
	'FN-3'
	'FN-R'				ANSI_SPEC
cbuf4		REDO
	"execute-macro-4"		!FEWNAMES
	'FN-4'
	'FN-S'				ANSI_SPEC
cbuf5		REDO
	"execute-macro-5"		!FEWNAMES
	'FN-5'
cbuf6		REDO
	"execute-macro-6"		!FEWNAMES
	'FN-6'
cbuf7		REDO
	"execute-macro-7"		!FEWNAMES
	'FN-7'
cbuf8		REDO
	"execute-macro-8"		!FEWNAMES
	'FN-8'
cbuf9		REDO
	"execute-macro-9"		!FEWNAMES
	'FN-9'
cbuf10		REDO
	"execute-macro-10"		!FEWNAMES
cbuf11		REDO			!SMALLER
	"execute-macro-11"		!FEWNAMES
cbuf12		REDO			!SMALLER
	"execute-macro-12"		!FEWNAMES
cbuf13		REDO			!SMALLER
	"execute-macro-13"		!FEWNAMES
cbuf14		REDO			!SMALLER
	"execute-macro-14"		!FEWNAMES
cbuf15		REDO			!SMALLER
	"execute-macro-15"		!FEWNAMES
cbuf16		REDO			!SMALLER
	"execute-macro-16"		!FEWNAMES
cbuf17		REDO			!SMALLER
	"execute-macro-17"		!FEWNAMES
cbuf18		REDO			!SMALLER
	"execute-macro-18"		!FEWNAMES
cbuf19		REDO			!SMALLER
	"execute-macro-19"		!FEWNAMES
cbuf20		REDO			!SMALLER
	"execute-macro-20"		!FEWNAMES
cbuf21		REDO			!SMALLER
	"execute-macro-21"		!FEWNAMES
cbuf22		REDO			!SMALLER
	"execute-macro-22"		!FEWNAMES
cbuf23		REDO			!SMALLER
	"execute-macro-23"		!FEWNAMES
cbuf24		REDO			!SMALLER
	"execute-macro-24"		!FEWNAMES
cbuf25		REDO			!SMALLER
	"execute-macro-25"		!FEWNAMES
cbuf26		REDO			!SMALLER
	"execute-macro-26"		!FEWNAMES
cbuf27		REDO			!SMALLER
	"execute-macro-27"		!FEWNAMES
cbuf28		REDO			!SMALLER
	"execute-macro-28"		!FEWNAMES
cbuf29		REDO			!SMALLER
	"execute-macro-29"		!FEWNAMES
cbuf30		REDO			!SMALLER
	"execute-macro-30"		!FEWNAMES
cbuf31		REDO			!SMALLER
	"execute-macro-31"		!FEWNAMES
cbuf32		REDO			!SMALLER
	"execute-macro-32"		!FEWNAMES
cbuf33		REDO			!SMALLER
	"execute-macro-33"		!FEWNAMES
cbuf34		REDO			!SMALLER
	"execute-macro-34"		!FEWNAMES
cbuf35		REDO			!SMALLER
	"execute-macro-35"		!FEWNAMES
cbuf36		REDO			!SMALLER
	"execute-macro-36"		!FEWNAMES
cbuf37		REDO			!SMALLER
	"execute-macro-37"		!FEWNAMES
cbuf38		REDO			!SMALLER
	"execute-macro-38"		!FEWNAMES
cbuf39		REDO			!SMALLER
	"execute-macro-39"		!FEWNAMES
cbuf40		REDO			!SMALLER
	"execute-macro-40"		!FEWNAMES
delwind		NONE
	"delete-window"			!FEWNAMES
	'^K'
	'^X-0'
deblank		REDO|UNDO		AEDIT
	"delete-blank-lines"		!FEWNAMES
	'^A-o'
delgmode	NONE
	"delete-global-mode"		!FEWNAMES
	"setgno"
	"unsetg"
	"setno"
	"unset"
delmode		NONE|(EXRCOK|EXTRA)
	"delete-mode"			!FEWNAMES
	"setlno"
	"unsetl"
deltoeol	REDO|UNDO
	"delete-to-eol"		!FEWNAMES
	'D'
desbind		NONE			REBIND
	"describe-bindings"
	"list-bindings"
deskey		NONE			REBIND
	"describe-key"
dotcmdplay	NONE
	"repeat-last-cmd"		!FEWNAMES
	'.'
ex	NONE|(BANG|FILE1)
	"ex"
execbuf		NONE			!SMALLER
	"execute-buffer"		!FEWNAMES
execcmd		NONE			NEVER
	"execute-command-line"		!FEWNAMES
execfile	NONE			!SMALLER
	"execute-file"			!FEWNAMES
	"source"
execkreg	NONE
	"execute-register"
	'@'
execproc	REDO			PROC
	"execute-procedure"		!FEWNAMES
	"run"
enlargewind	NONE
	"grow-window"			!FEWNAMES
	'V'
esc		NONE
	"abort-command"			!FEWNAMES
	'^['
fcsrch		MOTION
	"forward-char-scan"		!FEWNAMES
	'f'
fcsrch_to	MOTION
	"forward-char-scan-up-to"	!FEWNAMES
	't'
filefind	NONE|(BANG|FILE1|PLUS)
	"e"
	"E"
	"edit-file"			!FEWNAMES
	"find-file"			!FEWNAMES
	'^X-e'
filename	NONE|(NAMEDF)
	"change-file-name"		!FEWNAMES
	"f"
	"file"
	"filename"
fileread	NONE
	"e!"
	"replace-with-file"		!FEWNAMES
filesave	NONE			!SMALLER
	"save-file"
filewrite	NONE
#	"w"
#	"W"
	"write-file"			!FEWNAMES
filter		REDO|UNDO
	"|"
	"filter-buffer"			!FEWNAMES
finderr		NONE			FINDERR
	"find-next-error"		!FEWNAMES
	'^X-^X'
firstnonwhite	MOTION
	"first-nonwhite"		!FEWNAMES
	'^'
fisearch	NONE			ISRCH
	"incremental-search"		!FEWNAMES
	'^X-S'
flipchar	REDO|UNDO
	"flip-character"		!FEWNAMES
	'~'
fnclabel	NONE			FLABEL
	"label-function-key"		!FEWNAMES
	"label-fkey"
forwdelchar	REDO|UNDO
	"delete-next-character"		!FEWNAMES
	'x'
forwhpage	NONE
	"forward-half-page"		!FEWNAMES
	"next-half-page"		!FEWNAMES
	"down-half-page"		!FEWNAMES
	'^D'
forwchar	MOTION
	"forward-character"		!FEWNAMES
	"next-character"		!FEWNAMES
forwchar_to_eol	MOTION
	"forward-character-to-eol"	!FEWNAMES
	"next-character-to-eol"	!FEWNAMES
	' '
	'l'
	'FN-C'				ANSI_SPEC
forwpage	MOTION
	"forward-page"			!FEWNAMES
	"next-page"			!FEWNAMES
	"down-page"			!FEWNAMES
	'^F'
forwline	GOAL|MOTION|FL
	"forward-line"			!FEWNAMES
	"next-line"			!FEWNAMES
	"down-line"			!FEWNAMES
	'j'
	'^J'
	'^N'
	'FN-B'				ANSI_SPEC
forwbline	MOTION|FL
	"forward-line-at-bol"		!FEWNAMES
	"next-line-at-bol"		!FEWNAMES
	"down-line-at-bol"		!FEWNAMES
	'+'
	'^M'
forwword	MOTION
	"forward-word"			!FEWNAMES
	"next-word"			!FEWNAMES
	'W'
forwviword	MOTION
	"forward-punctuated-word"		!FEWNAMES
	"next-punctuated-word"		!FEWNAMES
	'w'
forwendw	MOTION
	"forward-word-end"			!FEWNAMES
	"next-word-end"			!FEWNAMES
	'E'
forwviendw	MOTION
	"forward-punctuated-word-end"		!FEWNAMES
	"next-punctuated-word-end"		!FEWNAMES
	'e'
forwhunt	ABS|MOTION		!SMALLER
	"hunt-forward"			!FEWNAMES
forwsearch	ABS|MOTION
	"search-forward"		!FEWNAMES
	'/'
matchfence	ABS|MOTION		CFENCE
	"goto-matching-fence"		!FEWNAMES
	'%'
matchfenceback	ABS|MOTION		CFENCE
	"goto-matching-fence-behind"	!FEWNAMES
	'^X-%'
globals		NONE			GLOBALS
	"og"
# this function is for internal use only, for the operator commands
godotplus	MOTION|FL

# this function is for internal use only, for ex commands
gomark		MOTION|FL|(RANGE|ZERO)

gotobop		ABS|MOTION		WORDPRO
	"previous-paragraph"		!FEWNAMES
	"back-paragraph"		!FEWNAMES
	"up-paragraph"		!FEWNAMES
	'{'
gotoeop		ABS|MOTION		WORDPRO
	"forward-paragraph"		!FEWNAMES
	"next-paragraph"		!FEWNAMES
	"down-paragraph"		!FEWNAMES
	'}'
gotobob		ABS|MOTION		!SMALLER
	"beginning-of-file"		!FEWNAMES
	"goto-beginning-of-file"	!FEWNAMES
gotoeob		ABS|MOTION		!SMALLER
	"goto-end-of-file"		!FEWNAMES
	"end-of-file"			!FEWNAMES
gotobol		MOTION
	"goto-bol"			!FEWNAMES
	"beginning-of-line"		!FEWNAMES
	"bol"				!FEWNAMES
	'0'
gotoeol		MOTION|GOAL
	"goto-eol"			!FEWNAMES
	"end-of-line"			!FEWNAMES
	"eol"				!FEWNAMES
	'$'
gotobos		ABS|MOTION|FL
	"goto-beginning-of-screen"	!FEWNAMES
	"beginning-of-screen"		!FEWNAMES
	'H'
gotomos		ABS|MOTION|FL
	"goto-middle-of-screen"		!FEWNAMES
	"middle-of-screen"		!FEWNAMES
	'M'
gotoeos		ABS|MOTION|FL
	"goto-end-of-screen"		!FEWNAMES
	"end-of-screen"			!FEWNAMES
	'L'
gotobosec	ABS|MOTION		WORDPRO
	"previous-section"		!FEWNAMES
	"back-section"			!FEWNAMES
	"up-section"			!FEWNAMES
	'['
gotoeosec	ABS|MOTION		WORDPRO
	"forward-section"		!FEWNAMES
	"next-section"			!FEWNAMES
	"down-section"			!FEWNAMES
	']'
gotobosent	ABS|MOTION		WORDPRO
	"previous-sentence"		!FEWNAMES
	"back-sentence"			!FEWNAMES
	"up-sentence"			!FEWNAMES
	'('
gotoeosent	ABS|MOTION		WORDPRO
	"forward-sentence"		!FEWNAMES
	"next-sentence"			!FEWNAMES
	"down-sentence"			!FEWNAMES
	')'
gototag		NONE|(BANG|WORD1)		TAGS
	"ta"
	"tag"
	"find-tag"			!FEWNAMES
	'^]'
gotocol		MOTION
	"goto-column"			!FEWNAMES
	'|'
gotoline	ABS|MOTION|FL|(RANGE)
	"goto-line"			!FEWNAMES
	'G'
# golinenmmark and goexactnmmark are special cases--	
# 	no ABS even though they are absolute, since these are the commands
#	that maintain the last-dot-mark
golinenmmark	MOTION|FL
	"goto-named-mark"		!FEWNAMES
#  single quote -- can't use '''
	'\047'
goexactnmmark	MOTION
	"goto-named-mark-exact"		!FEWNAMES
	'`'
help		NONE
	"h"
	"help"
	"list-help"
	'^A-h'
	'^X-h'
histbuff	NONE
	"historical-buffer"		!FEWNAMES
	'_'
	"_"
insert		REDO|UNDO
	"insert-chars"			!FEWNAMES
	'i'
insertbol	REDO|UNDO
	"insert-chars-at-bol"	!FEWNAMES
	'I'
insfile		REDO|UNDO|GLOBOK|(FROM|ZERO|NAMEDF)
	"r"
	"insert-file"			!FEWNAMES
	"read-file"			!FEWNAMES
	'^R'
insspace	REDO|UNDO		!SMALLER
	"insert-space"			!FEWNAMES
istring		REDO|UNDO		!SMALLER
	"insert-string"
join		REDO|UNDO
	"join-lines"			!FEWNAMES
	'J'
killbuffer	NONE
	"delete-buffer"			!FEWNAMES
	"kill-buffer"			!FEWNAMES
	"ki"
showlength	NONE
	"buffer-length"			!FEWNAMES
	"="
lastnonwhite	MOTION			!SMALLER
	"last-nonwhite"			!FEWNAMES
listbuffers	NONE
	"list-buffers"			!FEWNAMES
	'^A-*'
lineputafter	REDO|UNDO|GLOBOK|(FROM|ZERO|WORD1)
	"put-as-lines-after"		!FEWNAMES
	"put"
	'^X-p'
lineputbefore	REDO|UNDO|GLOBOK|(FROM|WORD1)
	"put-as-lines-before"		!FEWNAMES
	"Put"
	'^X-P'
lineundo	NONE
	"undo-line-changes"		!FEWNAMES
	'U'
loadkreg	NONE
	"load-register"
map		NONE|(EXRCOK|BANG|EXTRA)
	"map"
cntl_af		NONE
	"cntl_a-prefix"
	'^A'
mvdnnxtwind	NONE
	"move-next-window-down"		!FEWNAMES
	'^A-^E'
mvupnxtwind	NONE
	"move-next-window-up"		!FEWNAMES
	'^A-^Y'
mvdnwind	GOAL
	"move-window-down"		!FEWNAMES
	'^E'
mvupwind	GOAL
	"move-window-up"		!FEWNAMES
	'^Y'
mvrightwind	GOAL
	"move-window-right"		!FEWNAMES
	'^X-^R'
mvleftwind	GOAL
	"move-window-left"		!FEWNAMES
	'^X-^L'
nextbuffer	NONE|(BANG|NAMEDFS)
	"n"
	"next-buffer"			!FEWNAMES
namebuffer	NONE
	"rename-buffer"
newline		REDO|UNDO		!SMALLER
	"newline"
newlength	NONE
	"screen-rows"
newwidth	NONE
	"screen-columns"
nextwind	NONE
	"next-window"			!FEWNAMES
	'^X-o'
#	'^N'
nullproc	NONE
	"nop"				!FEWNAMES
	'^Q'
	'^S'
onamedcmd	NONE
	"execute-named-command-old"	!FEWNAMES
	'^A-:'
namedcmd	NONE
	"execute-named-command"		!FEWNAMES
	":"
	':'
openup		REDO|UNDO|(FROM)
	"open-line-above-and-insert-chars"	!FEWNAMES
	"i"
	'O'
opendown	REDO|UNDO|(FROM|ZERO)
	"open-line-below-and-append-chars"	!FEWNAMES
	"a"
	'o'
operchg		OPER|REDO|UNDO
	"change-til"			!FEWNAMES
	"delete-and-insert-chars-til"			!FEWNAMES
	'c'
operdetab	OPER|REDO|UNDO|GLOBOK|(RANGE)	AEDIT
	"detab-lines-til"		!FEWNAMES
	'^A- '
operentab	OPER|REDO|UNDO|GLOBOK|(RANGE)	AEDIT
	"entab-lines-til"		!FEWNAMES
	'^A-^I'
opermove	OPER|(RANGE|EXTRA)
	"move-til"
	"m"
operlinechg	OPER|REDO|UNDO|(RANGE)
	"change-lines-til"		!FEWNAMES
	"delete-lines-and-insert-chars-til"		!FEWNAMES
	"ch"
	'^X-c'
operdel		OPER|REDO|UNDO
	"delete-til"			!FEWNAMES
	'd'
operlinedel	OPER|REDO|UNDO|GLOBOK|(RANGE+WORD1)
	"delete-lines-til"		!FEWNAMES
	"d"
	'^X-d'
operfilter	OPER|REDO|UNDO|(EXRCOK|RANGE|NAMEDFS|DFLNONE|NL)
	"filter-til"			!FEWNAMES
	"!"
	'!'
operformat	OPER|REDO|UNDO|(RANGE)		WORDPRO
	"format-til"			!FEWNAMES
	'^A-f'
	'^A-j'
operflip	OPER|REDO|UNDO|GLOBOK|(RANGE)
	"flip-til"			!FEWNAMES
	"~"
	'^A-~'
# RANGE commented out, since it's not done.... 
operglobals	(/*RANGE|*/BANG|EXTRA|DFLALL)	GLOBALS
	"global"
	"g"
opervglobals	(RANGE|BANG|EXTRA|DFLALL)	GLOBALS
	"vglobal"
	"v"
operlower	OPER|REDO|UNDO|GLOBOK|(RANGE)
	"lower-til"			!FEWNAMES
	"L"
	'^A-l'
operlist	OPER|GLOBOK|(RANGE)		GLOBALS
	"list-lines-til"		!FEWNAMES
	"l"
operprint	OPER|GLOBOK|(RANGE)		GLOBALS
	"print-lines-til"		!FEWNAMES
	"p"
operupper	OPER|REDO|UNDO|GLOBOK|(RANGE)
	"upper-til"			!FEWNAMES
	"U"
	'^A-u'
operlshift	OPER|REDO|UNDO|GLOBOK|(RANGE)
	"shift-left-til"		!FEWNAMES
	"<"
	'<'
operrshift	OPER|REDO|UNDO|GLOBOK|(RANGE)
	"shift-right-til"		!FEWNAMES
	">"
	'>'
opersubst	OPER|REDO|UNDO|GLOBOK|(RANGE|EXTRA)
	"substitute-til"		!FEWNAMES
	"s"
	'^X-s'
opertrim	REDO|UNDO|GLOBOK|UNDO|(RANGE)	AEDIT
	"trim-lines-til"		!FEWNAMES
	"trim"
	'^A-t'
operyank	OPER
	"yank-til"			!FEWNAMES
	'y'
operlineyank	OPER|(RANGE|WORD1)
	"yank-lines-til"		!FEWNAMES
	"y"
	'^X-y'
opersubstagain	OPER|REDO|UNDO|GLOBOK|(RANGE|EXTRA)
	"substitute-again-til"		!FEWNAMES
	"&"
	'^A-&'
opertransf	OPER|(RANGE+EXTRA)
	"transfer-til"
	"t"
operwrite	OPER|(RANGE|BANG|FILE1|DFLALL)
	"w"
	"W"
	"write-til"			!FEWNAMES
	'^W'
overwrite	REDO|UNDO
	"overwrite-chars"		!FEWNAMES
	'R'
onlywind	NONE
	"delete-other-windows"		!FEWNAMES
	'^O'
	'^X-1'
poswind		NONE
	"position-window"		!FEWNAMES
	'z'
prevwind	NONE
	"previous-window"		!FEWNAMES
	'^X-O'
#	'^P'
pipecmd		NONE
	"pipe-command"			!FEWNAMES
	'^X-!'
putafter	REDO|UNDO
	"put-after"			!FEWNAMES
	'p'
putbefore	REDO|UNDO
	"put-before"			!FEWNAMES
	'P'
pwd		NONE
	"pwd"
	"print-directory"
quit		NONE|(BANG)
	"q"
	"Q"
	"exit"
	"quit"
	'Q'
	'^X-^C'
quithard	NONE
	"quit-without-save"
	"q!"
	"Q!"
quickexit	NONE|(BANG|NL)
	"x"
	"xit"
	"wwq"
	"write-changed-buffers-and-quit" !FEWNAMES
	"quick-exit"			!FEWNAMES
quote		REDO|UNDO
	"quote-next-character"		!FEWNAMES
	'^V'
refresh		NONE
	"clear-and-redraw"		!FEWNAMES
	'^L'
reposition	NONE			!SMALLER
	"redraw-display"
rep_csrch	MOTION
	"repeat-char-scan"		!FEWNAMES
	';'
replacechar	REDO|UNDO
	"replace-character"		!FEWNAMES
	'r'
respawn		NONE
	"!!"
	"rerun-shell-command"		!FEWNAMES
resize		NONE			!SMALLER
	"resize-window"
restwnd		NONE			!SMALLER
	"restore-window"
rev_csrch	MOTION
	"reverse-char-scan"		!FEWNAMES
	','
risearch	NONE			ISRCH
	"reverse-incremental-search"	!FEWNAMES
	'^X-R'
revsearch	ABS|MOTION
	"reverse-search"		!FEWNAMES
	'N'
scrforwsearch	ABS|MOTION
	"screen-search-forward"		!FEWNAMES
	'^X-/'
scrbacksearch	ABS|MOTION
	"screen-search-reverse"		!FEWNAMES
	'^X-?'
scrsearchpat	NONE
	"screen-search-pattern-grab"	!FEWNAMES
	'^A-/'
scrforwsearchword	ABS|MOTION
	"screen-search-forward-word"		!FEWNAMES
	'^X-,'
scrbacksearchword	ABS|MOTION
	"screen-search-reverse-word"		!FEWNAMES
	'^X-<'
scrsearchpatword	NONE
	"screen-search-pattern-grab-word"	!FEWNAMES
	'^A-,'
settab		NONE
	"handle-tab"			!FEWNAMES
	"set-tab"
	'^X-t'
spawncli	NONE
	"sh"
	"shell"
	"interactive-shell"		!FEWNAMES
savewnd		NONE			!SMALLER
	"save-window"
scrnextup	NONE
	"scroll-next-window-up"		!FEWNAMES
	'^A-^U'
scrnextdw	NONE
	"scroll-next-window-down"	!FEWNAMES
	'^A-^D'
setfillcol	NONE
	"set-fill-column"
	'^X-f'
setkey		NONE			CRYPT
	"set-crypt-key"
	'^X-X'
setmode		NONE|(EXRCOK|EXTRA)
	"setl"
	"set-mode"			!FEWNAMES
setgmode	NONE
	"set"
	"setg"
	"set-global-mode"
setnmmark	NONE|(FROM+WORD1)
	"set-named-mark"		!FEWNAMES
	"k"
	'm'
setvar		NONE			!SMALLER
	"setv"
	"set-variable"
setvmalloc	NONE			VMALLOC
	"vmalloc"
	'^X-v'
showcpos	NONE
	"position"			!FEWNAMES
	'^G'
	'^X-='
listmodes	NONE
	"modes"
	"show-modes"
	"list-modes"
	"setall"
	"setgall"
	"gmodes"
	"show-global-modes"
	"showmodes"
	"showgmodes"
showversion	NONE|(EXRCOK)
	"version"
shrinkwind	NONE
	"shrink-window"			!FEWNAMES
	'v'
source		NONE|(EXRCOK|NAMEDF)
	"exsource"
spawn		NONE
#	"!"
	"shell-command"			!FEWNAMES
speckey		NONE
	'#'
splitwind	NONE
	"split-current-window"		!FEWNAMES
#	'^T'
	'^X-2'
storemac	NONE
	"store-macro"
storeproc	NONE			PROC
	"store-procedure"
subst_again	REDO|UNDO|GLOBOK
	"substitute-again"		!FEWNAMES
	'&'
togglelistbuffers	NONE
	"*"
	"toggle-buffer-list"		!FEWNAMES
	'*'
twiddle		REDO|UNDO		!SMALLER
	"transpose-characters"		!FEWNAMES
unbindkey	NONE			REBIND
	"unbind-key"
undo		NONE
	"undo-change"			!FEWNAMES
	'u'
unarg		NONE
	"universal-argument"		!FEWNAMES
	'K'
unimpl		NONE
	"unimplemented-command"		!FEWNAMES
unmark		NONE
	"unmark-buffer"
unmap		NONE|(EXRCOK|BANG|EXTRA)
	"unmap"
untagpop	NONE			TAGS
	"pop"
	"untag-pop"			!FEWNAMES
	'^X-^]'
	'^T'
upscreen	NONE			!SMALLER
	"update-screen"
usebuffer	NONE
	"b"
	"buffer"
	"select-buffer"			!FEWNAMES
usekreg		REDO
	"use-register"		!FEWNAMES
	'"'
visual		NONE
	"visual"
vglobals	NONE			GLOBALS
	"ov"
viewfile	NONE
	"view-file"
writeall	NONE|(NL)
	"ww"
	"write-changed-buffers"		!FEWNAMES
writequit	NONE|(NL)
	"wq"
	"Wq"
	"WQ"
	"write-file-and-quit"		!FEWNAMES
wrapword	REDO|UNDO		!SMALLER
	"wrap-word"
writemsg	NONE			!SMALLER
	"write-message"
yankline	NONE
	"yank-line"			!FEWNAMES
	'Y'
zzquit		NONE|(BANG|NL)
	'Z'
	"stuttered-write-all-and-quit"
