File: cmdtbl

package info (click to toggle)
vile 9.6m-1
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 8,196 kB
  • ctags: 8,459
  • sloc: ansic: 90,876; lex: 9,514; sh: 3,223; cpp: 3,137; perl: 2,928; makefile: 785; awk: 276
file content (1900 lines) | stat: -rw-r--r-- 58,506 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
# This file contains all of the editor's command and key linkages.
# It also contains data for tables which are automatically generated in the
# editor.
#
# 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	ABSM|MOTION		BSD|DOS
#		"funkycom"
#		'^X-F'
#		'FN-2'				DOS
#		'M-s'
#
# As a special case, if a function key definition ('FN-A') is followed
# by a conditional beginning with "KEY_", like:
#		'FN-A'				KEY_Up
# then that name is output to nefkeys.h as a SPEC|x definition, for use
# by the screen/keyboard drivers.  The key is also bound, as usual, and
# is made conditional on the _third_ field on the line.  (Since KEY_xxx
# definitions are meant to be pretty generic, there should be little
# need for conditional build-time binding.)
#
# 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, to function key 2 under DOS, and to "meta-s",
#  that is, an 's' with the high bit set.
#
# 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 position 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
#	ABSM only occurs with MOTION, means that the motion is absolute,
#		i.e. not relative to the current position or screen.  It causes
#		the "lastdotmark", ldmark to be set to dot before the move
#		takes place.
#	MINIBUF is a special case, commands which can be used in the
#		minibuffer.  This includes MOTION and editing commands.
#	GOAL signifies a motion that will attempt to retain the
#		current column position 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
#
#	Some of the flags given 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.
#	BANG says the command (in real vi) can take a trailing ! character,
#		and will behave differently.  In vile, most such commands
#		have separate entries, e.g. quit and quithard and separate
#		functions which are executed.  in some cases this is very
#		impractical, as is the case with w and w!  -- so, if a command
#		is entered ending with a '!' (it must be in this table by
#		that name) _and_ the BANG flag is set for that command, then
#		the function will be invoked with "special" values for f and
#		n (i.e. values unlikely to be typed) so the function can
#		distinguish the two cases.
#		If the BANG flag appears, and there is no command-name ending
#		in '!' listed, then the flag does nothing, and should be
#		viewed simply as documentation.
#
# $Header: /usr/build/vile/vile/RCS/cmdtbl,v 1.251 2007/09/19 20:25:11 tom Exp $
#
#

abbrev		EXRCOK|EXTRA
	"abbreviate"
	"show-abbreviations"
	<establish shorthand for another string, or show all abbreviations>
altbuff		NONE
	"alternate-buffer"		!FEWNAMES
	'^^'
	'CTRL+6'			W32KY	SYS_WINNT
	<switch to previous buffer>
append		REDO|UNDO
	"append-chars"			!FEWNAMES
	'a'
	<insert (CNT copies of) text after the cursor>
append_i	REDO|UNDO
	"append-indented-chars"		!FEWNAMES
	"a!"
	<insert (CNT copies of) text after the cursor, toggles autoindent>
appstring	REDO|UNDO		!SMALLER
	"append-string"
	<append (CNT copies of) the given string after the cursor>
appendeol	REDO|UNDO
	"append-chars-at-eol"		!FEWNAMES
	'A'
	<insert (CNT copies of) text after the end of line>
backchar	MOTION|MINIBUF
	"backward-character"		!FEWNAMES
	<move CNT characters left, wrapping to previous line>
backchar_to_bol	MOTION|MINIBUF
	"backward-character-to-bol"	!FEWNAMES
	"left-arrow"
	'h'
	'^H'
	'^?'
	'FN-D'				KEY_Left
	<move CNT characters left, stopping at beginning of line>
backdelchar	REDO|UNDO|MINIBUF
	"delete-previous-character"	!FEWNAMES
	'X'
	<delete CNT characters to the left>
backhunt	ABSM|MOTION		!SMALLER
	"hunt-backward"
	<search backward for CNT'th occurrence of previously entered pattern>
backhpage	MOTION
	"previous-half-page"		!FEWNAMES
	"back-half-page"		!FEWNAMES
	"up-half-page"			!FEWNAMES
	'^U'
	<move up CNT half screens>
backline	GOAL|MOTION|FL
	"previous-line"			!FEWNAMES
	"back-line"			!FEWNAMES
	"up-line"			!FEWNAMES
	"up-arrow"			!FEWNAMES
	'k'
	'^P'
	'FN-A'				KEY_Up
	<move up CNT lines>
backbline	MOTION|FL
	"previous-line-at-bol"		!FEWNAMES
	"back-line-at-bol"		!FEWNAMES
	"up-line-at-bol"		!FEWNAMES
	'-'
	<move up CNT lines, to first non-white character>
backpage	MOTION
	"previous-page"			!FEWNAMES
	"back-page"			!FEWNAMES
	'^B'
	'FN-p'				KEY_Prior
	<move up CNT full screens>
back_row	GOAL|MOTION
	'^X-^U'
	"backward-row"			!FEWNAMES
	"previous-row"			!FEWNAMES
	<move up CNT rows on the screen>
backword	MOTION|MINIBUF
	"previous-word"			!FEWNAMES
	"back-word"			!FEWNAMES
	'B'
	<move left by CNT \"big\" words>
backviword	MOTION|MINIBUF
	"previous-punctuated-word"	!FEWNAMES
	"back-punctuated-word"		!FEWNAMES
	'b'
	<move left by CNT \"small\" words>
backsearch	ABSM|MOTION
	"search-reverse"		!FEWNAMES
	'?'
	<search backwards for fresh pattern>
bcsrch		MOTION|MINIBUF
	"backward-char-scan"		!FEWNAMES
	'F'
	<scan left on the line for CNT'th occurrence of the given character>
bcsrch_to	MOTION|MINIBUF
	"backward-char-scan-to"		!FEWNAMES
	'T'
	<scan left on the line up to but not including CNT'th occurrence of the given character>
bindkey		NONE			OPT_REBIND
	"bind-key"
	"rebind-key"
	<bind a keystroke to a function>
bind_i_key	NONE			OPT_REBIND
	"bind-insmode-key"
	"rebind-insmode-key"
	<bind a keystroke to a function effective in insertion mode>
bind_c_key	NONE			OPT_REBIND
	"bind-cmdmode-key"
	"rebind-cmdmode-key"
	<bind a keystroke to a function effective in command mode>
bind_s_key	NONE			OPT_REBIND
	"bind-selmode-key"
	"rebind-selmode-key"
	<bind a keystroke to a function effective in select mode>
bktoshell	BANG			OPT_SHELL
	"suspend"
	"suspend!"
	"stop"
	"stop!"
	'^Z'
	<suspend the editor>
vl_chdir	NONE			OPT_SHELL
	"cd"
	"change-directory"
	<move to a new directory, \"-\" is previous, \"~\" is $HOME>
cntl_x_func	NONE
	"cntl_x-prefix"
	'^X'
	<the \"Control-X\" prefix, used when typing extended commands>
chgchar		REDO|UNDO
	"change-char"			!FEWNAMES
	"delete-char-and-insert-chars"	!FEWNAMES
	's'
	<insert text to replace CNT characters>
chgline		REDO|UNDO
	"change-line"			!FEWNAMES
	"delete-line-and-insert-chars"	!FEWNAMES
	'S'
	<insert text to replace the CNT lines, starting with current line>
chgtoeol	REDO|UNDO
	"change-to-eol"			!FEWNAMES
	"delete-to-eol-and-insert-chars" !FEWNAMES
	'C'
	<insert text to replace the rest of the line (plus CNT-1 following)>
clear_match_attrs	NONE		OPT_HILITEMATCH
	"clear-visual-matches"
	'='
	<clear highlighting caused by searches when \"visual-matches\" is set>
clrmes		NONE
	"clear-message-line"		!FEWNAMES
	<erase text on the bottom line of screen>
comp_err_exps	NONE			OPT_FINDERR
	"compile-error-expressions"
	<(re)compile the [Error Expressions] buffer>
show_err_regex	NONE			OPT_FINDERR
	"show-error-expressions"
	<display error meta-expressions and resulting regular expressions>
consearch	ABSM|MOTION
	"continue-search"		!FEWNAMES
	'n'
	<search for previous pattern in same direction as before, CNT'th occurrence>
opercopy	OPER|RANGE|EXTRA
	"copy-til"
	"co"
	<copy text in the region>
kbd_mac_startstop	NONE
	"end-keyboard-macro"		!FEWNAMES
	"begin-keyboard-macro"		!FEWNAMES
	'^X-('
	'^X-)'
	<begin or end recording a macro of keystrokes>
kbd_mac_exec	REDO|UNDO|VIEWOK
	"execute-keyboard-macro"	!FEWNAMES
	'^X-&'
	<execute a previously recorded macro of keystrokes CNT times>
kbd_mac_save	NONE
	"save-keyboard-macro"
	'^X-^'
	<save a previously recorded macro of keystrokes to a named register>
cbuf1		REDO			OPT_EXEC_MACROS>0
	"execute-macro-1"		!FEWNAMES
	'FN-1'				KEY_F1
	'FN-P'				KEY_KP_F1
	<execute [Macro 1] CNT times>
cbuf2		REDO			OPT_EXEC_MACROS>1
	"execute-macro-2"		!FEWNAMES
	'FN-2'				KEY_F2
	'FN-Q'				KEY_KP_F2
	<execute [Macro 2] CNT times>
cbuf3		REDO			OPT_EXEC_MACROS>2
	"execute-macro-3"		!FEWNAMES
	'FN-3'				KEY_F3
	'FN-R'				KEY_KP_F3
	<execute [Macro 3] CNT times>
cbuf4		REDO			OPT_EXEC_MACROS>3
	"execute-macro-4"		!FEWNAMES
	'FN-4'				KEY_F4
	'FN-S'				KEY_KP_F4
	<execute [Macro 4] CNT times>
cbuf5		REDO			OPT_EXEC_MACROS>4
	"execute-macro-5"		!FEWNAMES
	'FN-5'				KEY_F5
	<execute [Macro 5] CNT times>
cbuf6		REDO			OPT_EXEC_MACROS>5
	"execute-macro-6"		!FEWNAMES
	'FN-6'				KEY_F6
	<execute [Macro 6] CNT times>
cbuf7		REDO			OPT_EXEC_MACROS>6
	"execute-macro-7"		!FEWNAMES
	'FN-7'				KEY_F7
	<execute [Macro 7] CNT times>
cbuf8		REDO			OPT_EXEC_MACROS>7
	"execute-macro-8"		!FEWNAMES
	'FN-8'				KEY_F8
	<execute [Macro 8] CNT times>
cbuf9		REDO			OPT_EXEC_MACROS>8
	"execute-macro-9"		!FEWNAMES
	'FN-9'				KEY_F9
	<execute [Macro 9] CNT times>
cbuf10		REDO			OPT_EXEC_MACROS>9
	'FN-0'				KEY_F10
	"execute-macro-10"		!FEWNAMES
	<execute [Macro 10] CNT times>
cbuf11		REDO			OPT_EXEC_MACROS>10
	"execute-macro-11"		!FEWNAMES
	'FN-!'				KEY_F11
	<execute [Macro 11] CNT times>
cbuf12		REDO			OPT_EXEC_MACROS>11
	'FN-@'				KEY_F12
	"execute-macro-12"		!FEWNAMES
	<execute [Macro 12] CNT times>
cbuf13		REDO			OPT_EXEC_MACROS>12
	'FN-#'				KEY_F13
	"execute-macro-13"		!FEWNAMES
	<execute [Macro 13] CNT times>
cbuf14		REDO			OPT_EXEC_MACROS>13
	'FN-$'				KEY_F14
	"execute-macro-14"		!FEWNAMES
	<execute [Macro 14] CNT times>
cbuf15		REDO			OPT_EXEC_MACROS>14
	'FN-%'				KEY_F15
	"execute-macro-15"		!FEWNAMES
	<execute [Macro 15] CNT times>
cbuf16		REDO			OPT_EXEC_MACROS>15
	'FN-^'				KEY_F16
	"execute-macro-16"		!FEWNAMES
	<execute [Macro 16] CNT times>
cbuf17		REDO			OPT_EXEC_MACROS>16
	'FN-&'				KEY_F17
	"execute-macro-17"		!FEWNAMES
	<execute [Macro 17] CNT times>
cbuf18		REDO			OPT_EXEC_MACROS>17
	'FN-*'				KEY_F18
	"execute-macro-18"		!FEWNAMES
	<execute [Macro 18] CNT times>
cbuf19		REDO			OPT_EXEC_MACROS>18
	'FN-('				KEY_F19
	"execute-macro-19"		!FEWNAMES
	<execute [Macro 19] CNT times>
cbuf20		REDO			OPT_EXEC_MACROS>19
	'FN-)'				KEY_F20
	"execute-macro-20"		!FEWNAMES
	<execute [Macro 20] CNT times>
cbuf21		REDO			OPT_EXEC_MACROS>20
	'FN-\241'			KEY_F21
	"execute-macro-21"		!FEWNAMES
	<execute [Macro 21] CNT times>
cbuf22		REDO			OPT_EXEC_MACROS>21
	'FN-\242'			KEY_F22
	"execute-macro-22"		!FEWNAMES
	<execute [Macro 22] CNT times>
cbuf23		REDO			OPT_EXEC_MACROS>22
	'FN-\243'			KEY_F23
	"execute-macro-23"		!FEWNAMES
	<execute [Macro 23] CNT times>
cbuf24		REDO			OPT_EXEC_MACROS>23
	'FN-\244'			KEY_F24
	"execute-macro-24"		!FEWNAMES
	<execute [Macro 24] CNT times>
cbuf25		REDO			OPT_EXEC_MACROS>24
	'FN-\245'			KEY_F25
	"execute-macro-25"		!FEWNAMES
	<execute [Macro 25] CNT times>
cbuf26		REDO			OPT_EXEC_MACROS>25
	'FN-\246'			KEY_F26
	"execute-macro-26"		!FEWNAMES
	<execute [Macro 26] CNT times>
cbuf27		REDO			OPT_EXEC_MACROS>26
	'FN-\247'			KEY_F27
	"execute-macro-27"		!FEWNAMES
	<execute [Macro 27] CNT times>
cbuf28		REDO			OPT_EXEC_MACROS>27
	'FN-\250'			KEY_F28
	"execute-macro-28"		!FEWNAMES
	<execute [Macro 28] CNT times>
cbuf29		REDO			OPT_EXEC_MACROS>28
	'FN-\251'			KEY_F29
	"execute-macro-29"		!FEWNAMES
	<execute [Macro 29] CNT times>
cbuf30		REDO			OPT_EXEC_MACROS>29
	'FN-\252'			KEY_F30
	"execute-macro-30"		!FEWNAMES
	<execute [Macro 30] CNT times>
cbuf31		REDO			OPT_EXEC_MACROS>30
	'FN-\253'			KEY_F31
	"execute-macro-31"		!FEWNAMES
	<execute [Macro 31] CNT times>
cbuf32		REDO			OPT_EXEC_MACROS>31
	'FN-\254'			KEY_F32
	"execute-macro-32"		!FEWNAMES
	<execute [Macro 32] CNT times>
cbuf33		REDO			OPT_EXEC_MACROS>32
	'FN-\255'			KEY_F33
	"execute-macro-33"		!FEWNAMES
	<execute [Macro 33] CNT times>
cbuf34		REDO			OPT_EXEC_MACROS>33
	'FN-\256'			KEY_F34
	"execute-macro-34"		!FEWNAMES
	<execute [Macro 34] CNT times>
cbuf35		REDO			OPT_EXEC_MACROS>34
	'FN-\257'			KEY_F35
	"execute-macro-35"		!FEWNAMES
	<execute [Macro 35] CNT times>
cbuf36		REDO			OPT_EXEC_MACROS>35
	"execute-macro-36"		!FEWNAMES
	<execute [Macro 36] CNT times>
cbuf37		REDO			OPT_EXEC_MACROS>36
	"execute-macro-37"		!FEWNAMES
	<execute [Macro 37] CNT times>
cbuf38		REDO			OPT_EXEC_MACROS>37
	"execute-macro-38"		!FEWNAMES
	<execute [Macro 38] CNT times>
cbuf39		REDO			OPT_EXEC_MACROS>38
	"execute-macro-39"		!FEWNAMES
	<execute [Macro 39] CNT times>
cbuf40		REDO			OPT_EXEC_MACROS>39
	"execute-macro-40"		!FEWNAMES
	<execute [Macro 40] CNT times>
define_mode	NONE			OPT_MAJORMODE
	"define-majormode"
	"define-mode"
	<define a major mode, i.e., a collection of buffer modes>
define_submode	NONE			OPT_MAJORMODE
	"define-submode"
	<define a submode within a major mode>
define_scheme	NONE			OPT_COLOR_SCHEMES
	"define-color-scheme"
	<define a color scheme>
delwind		NONE
	"delete-window"			!FEWNAMES
	'^K'
	'^X-0'
	<destroy the current window, unless it is the last one>
forceblank	REDO|UNDO
	"delete-blank-lines"		!FEWNAMES
	"force-blank-lines"		!FEWNAMES
	'^A-d'
	<delete blank lines (or force some if CNT specified)>
delglobmode	NONE
	"delete-global-mode"		!FEWNAMES
	"setgno"
	"unsetg"
	"setno"
	"unset"
	<turn off the global value of a mode setting>
dellocmode	EXRCOK|EXTRA
	"delete-mode"			!FEWNAMES
	"setlno"
	"unsetl"
	<turn off the current buffer's local value of a mode setting>
deltoeol	REDO|UNDO|MINIBUF
	"delete-to-eol"			!FEWNAMES
	'D'
	<delete text from cursor to the end of line>
desbind		NONE			OPT_REBIND
	"list-commands"
	"describe-bindings"
	"show-commands"
	"show-bindings"
	<show a list of all commands>
des_i_bind	NONE			OPT_REBIND
	"describe-insmode-bindings"
	"show-insmode-bindings"
	<show a list of all commands that may be executed in insert-mode>
des_c_bind	NONE			OPT_REBIND
	"describe-cmdmode-bindings"
	"show-cmdmode-bindings"
	<show a list of all commands that may be executed in command-editing mode>
des_s_bind	NONE			OPT_REBIND
	"describe-selmode-bindings"
	"show-selmode-bindings"
	<show a list of all commands that may be executed in selection mode>
des_keynames	NONE			OPT_REBIND
	"show-key-names"
	<show a list of all function-key that may be bound with #-syntax>
descolors	NONE			OPT_SHOW_COLORS
	"list-colors"
	"show-colors"
	<show a list of all colors, as mapped by $palette>
desmotions	NONE			OPT_REBIND
	"list-motions"
	"describe-motions"
	"show-motions"
	<show a list of all motion commands>
desopers	NONE			OPT_REBIND
	"list-operators"
	"describe-operators"
	"show-operators"
	<show a list of all operator commands>
desschemes	NONE			OPT_COLOR_SCHEMES
	"show-color-schemes"
	<show the color scheme parameters>
desprint	NONE			OPT_SHOW_CTYPE
	"show-printable"
	<show the printable characters, with types>
dessubstr	NONE			OPT_REBIND
	"apropos"
	"list-commands-apropos-to"
	<look up command names containing a string>
desfunc		NONE			OPT_REBIND
	"describe-function"
	"show-function"
	<show a description and current bindings for a function>
deskey		NONE			OPT_REBIND
	"describe-key"
	<show the function bound to a given key>
des_i_key	NONE			OPT_REBIND
	"describe-insmode-key"
	<show the function bound to a given key in insert-mode>
des_c_key	NONE			OPT_REBIND
	"describe-cmdmode-key"
	<show the function bound to a given key in command-mode>
des_s_key	NONE			OPT_REBIND
	"describe-selmode-key"
	<show the function bound to a given key in selection-mode>
dotcmdplay	UNDO
	"repeat-last-cmd"		!FEWNAMES
	'.'
	<repeat the last text-changing command, CNT times>
des_amp_funcs	NONE			OPT_EVAL
	"describe-&functions"
des_dlr_vars	NONE			OPT_EVAL
	"describe-$variables"
evaluate	NONE			OPT_EVAL
	"eval"
	"execute-string"		!FEWNAMES
	<evaluate expression, reinterpret as a command (CNT as per command)>
ex		BANG|FILE1
	"ex"
	<entry point to the \"exile\" editor.  unimplemented>
execbuf		EXRCOK|EXTRA		!SMALLER
	"execute-buffer"		!FEWNAMES
	<run the given buffer as a script, CNT times>
execfile	EXRCOK|EXTRA		
	"execute-file"			!FEWNAMES
	"source"
	<run the given file as a script, CNT times>
exechypercmd	NONE			OPT_HYPERTEXT
	"execute-hypertext-command"	!FEWNAMES
	<run the hypertext command attached to the region under the cursor>
showhypercmd	NONE			OPT_HYPERTEXT
	"show-hypertext-command"	!FEWNAMES
	<show the hypertext command attached to the region under the cursor>
execkreg	REDO|UNDO|VIEWOK|USEREG
	"execute-register"
	'@'
	<execute the keystroke macro stored in the given named register CNT times>
execproc	REDO|EXRCOK|EXTRA	OPT_PROCEDURES
	"execute-procedure"		!FEWNAMES
	"run"
	<run the given named stored-procedure as a script, CNT times>
enlargewind	GOAL
	"grow-window"			!FEWNAMES
	'V'
	<increase the size of the current window by CNT lines>
esc_func	NONE
	"abort-command"			!FEWNAMES
	'^['
	<the abort key, normally bound to ESC; it terminates lots of things>
flow_control_enable	NONE		SYS_UNIX
	"flow-control-enable"
	<enable software flow-control (disable with arg)>
fcsrch		MOTION|MINIBUF
	"forward-char-scan"		!FEWNAMES
	'f'
	<scan right on the line for (CNT'th occurrence of) the given character>
fcsrch_to	MOTION|MINIBUF
	"forward-char-scan-up-to"	!FEWNAMES
	't'
	<scan right on the line up to but not including (CNT'th occurrence of) the given character>
filefind	BANG|FILE1|PLUS
	"e"
	"E"
	"edit-file"			!FEWNAMES
	"find-file"			!FEWNAMES
	'^X-e'
	<bring given (or under-cursor) file or existing buffer into window>
fileread	EXRCOK|FILE1		
	"e!"
	"replace-with-file"		!FEWNAMES
	<replace the contents of the current buffer with the given file>
vl_filename	NAMEDF
	"change-file-name"		!FEWNAMES
	"f"
	"file"
	"filename"
	<change the filename associated with the current buffer>
filesave	BANG			!SMALLER
	"save-file"
	"save-file!"
	<save the contents of the current buffer to its associated filename>
filewrite	BANG
	"write-file"			!FEWNAMES
	"write-file!"			!FEWNAMES
	<syntax: \"write-file [name]\" - write contents of current buffer to its filename or to optional \"name\">
vile_filter	REDO|UNDO		OPT_SHELL
	"|"
	"filter-buffer"			!FEWNAMES
	<pipe the entire buffer through an external filter command>
finderr		NONE			OPT_FINDERR
	"find-next-error"		!FEWNAMES
	'^X-^X'
	<move to the next \"error\" in the error-buffer>
finderrbuf	NONE			OPT_FINDERR
	"find-next-error-buffer-name"
	"error-buffer"
	<set the name of the buffer used as the error-buffer>
firstbuffer	NONE
	"rewind"
	"rew!"
	<go to first buffer in buffer list>
firstnonwhite	MOTION|MINIBUF
	"first-nonwhite"		!FEWNAMES
	'^'
	<move to the first non-whitespace character on line>
fisearch	NONE			OPT_ISRCH
	"incremental-search"		!FEWNAMES
	'^X-S'
	<search forward for a pattern entered character by character>
flipchar	REDO|UNDO|MINIBUF
	"flip-character"		!FEWNAMES
	'~'
	<exchange upper and lowercase for CNT characters, begin with current>
forwdelchar	REDO|UNDO|MINIBUF
	"delete-next-character"		!FEWNAMES
	'x'
	'FN-d'				KEY_Delete
	<delete CNT characters to the right>
forwhpage	MOTION
	"forward-half-page"		!FEWNAMES
	"next-half-page"		!FEWNAMES
	"down-half-page"		!FEWNAMES
	'^D'
	<move down CNT half screens>
forwchar	MOTION|MINIBUF
	"forward-character"		!FEWNAMES
	"next-character"		!FEWNAMES
	<move CNT characters right, wrapping to next line>
forwchar_to_eol	MOTION|MINIBUF
	"forward-character-to-eol"	!FEWNAMES
	"next-character-to-eol"		!FEWNAMES
	"right-arrow"
	' '
	'l'
	'FN-C'				KEY_Right
	<move CNT characters right, stopping at end of line>
forwpage	MOTION
	"forward-page"			!FEWNAMES
	"next-page"			!FEWNAMES
	"down-page"			!FEWNAMES
	'^F'
	'FN-n'				KEY_Next
	<move down CNT full screens>
forw_row	GOAL|MOTION
	'^X-^D'
	"forward-row"			!FEWNAMES
	"next-row"			!FEWNAMES
	<move down CNT rows on the screen>
forwline	GOAL|MOTION|FL
	"forward-line"			!FEWNAMES
	"next-line"			!FEWNAMES
	"down-line"			!FEWNAMES
	"down-arrow"			!FEWNAMES
	'j'
	'^J'
	'^N'
	'FN-B'				KEY_Down
	<move down CNT lines>
forwbline	MOTION|FL
	"forward-line-at-bol"		!FEWNAMES
	"next-line-at-bol"		!FEWNAMES
	"down-line-at-bol"		!FEWNAMES
	'+'
	'^M'
	<move down CNT lines, to first non-white character>
forwword	MOTION|MINIBUF
	"forward-word"			!FEWNAMES
	"next-word"			!FEWNAMES
	'W'
	<move right by CNT \"big\" words>
forwviword	MOTION|MINIBUF
	"forward-punctuated-word"	!FEWNAMES
	"next-punctuated-word"		!FEWNAMES
	'w'
	<move right by CNT \"small\" words>
forwendw	MOTION|MINIBUF
	"forward-word-end"		!FEWNAMES
	"next-word-end"			!FEWNAMES
	'E'
	<move right to the end of CNT \"big\" words>
forwviendw	MOTION|MINIBUF
	"forward-punctuated-word-end"	!FEWNAMES
	"next-punctuated-word-end"	!FEWNAMES
	'e'
	<move right to the end of CNT \"small\" words>
forwhunt	ABSM|MOTION		!SMALLER
	"hunt-forward"			!FEWNAMES
	<search forward for CNT'th occurrence of previously entered pattern>
forwsearch	ABSM|MOTION
	"search-forward"		!FEWNAMES
	'/'
	'FN-f'				KEY_Find
	<search forward for CNT'th occurrence of fresh $identifier pattern>
matchfence	ABSM|MOTION		OPT_CFENCE
	"goto-matching-fence"		!FEWNAMES
	'%'
	<find partner for next (,),[,],{,},#if,#else,#endif,/*,*/>
matchfenceback	ABSM|MOTION		OPT_CFENCE
	"goto-matching-fence-behind"	!FEWNAMES
	'^X-%'
	<find partner for previous (,),[,],{,} on line>
globals		NONE
	"oglobals"			VILE_NEVER

# the gotdotplus() function is mostly for internal use only, for the
# stuttered operator commands, but it corresponds to the real vi '_'
# command, so we give it a name, so it can be bound to if desired.
godotplus	MOTION|FL
	"whole-lines"
	<move CNT whole lines.  same as \"stuttering\" most operators>

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

gotobop		ABSM|MOTION
	"previous-paragraph"		!FEWNAMES
	"back-paragraph"		!FEWNAMES
	"up-paragraph"			!FEWNAMES
	'{'
	<move to the start of CNT'th paragraph>
gotoeop		ABSM|MOTION
	"forward-paragraph"		!FEWNAMES
	"next-paragraph"		!FEWNAMES
	"down-paragraph"		!FEWNAMES
	'}'
	<move to the end of CNT'th paragraph>
gotobob		ABSM|MOTION		!SMALLER
	"beginning-of-file"		!FEWNAMES
	"goto-beginning-of-file"	!FEWNAMES
	'FN-H'				KEY_Home
	<move to the top of the buffer>
gotoeob		ABSM|MOTION		!SMALLER
	"goto-end-of-file"		!FEWNAMES
	"end-of-file"			!FEWNAMES
	'FN-E'				KEY_End
	<move to the end of the buffer>
gotobol		MOTION|MINIBUF
	"goto-bol"			!FEWNAMES
	"beginning-of-line"		!FEWNAMES
	"bol"				!FEWNAMES
	'0'
	<move to the very beginning of the line>
gotoeol		GOAL|MOTION|MINIBUF
	"goto-eol"			!FEWNAMES
	"end-of-line"			!FEWNAMES
	"eol"				!FEWNAMES
	'$'
	<move to the very end of the CNT'th line>
gotobos		ABSM|MOTION|FL
	"goto-beginning-of-screen"	!FEWNAMES
	"beginning-of-screen"		!FEWNAMES
	'H'
	<move to the CNT'th line on the screen>
gotomos		ABSM|MOTION|FL
	"goto-middle-of-screen"		!FEWNAMES
	"middle-of-screen"		!FEWNAMES
	'M'
	<move to the line in the middle of the screen>
gotoeos		ABSM|MOTION|FL
	"goto-end-of-screen"		!FEWNAMES
	"end-of-screen"			!FEWNAMES
	'L'
	<move to the CNT'th line from the bottom of the screen>
gotobosec	ABSM|MOTION
	"previous-section"		!FEWNAMES
	"back-section"			!FEWNAMES
	"up-section"			!FEWNAMES
	'['
	<move to the CNT'th previous start of a \"section\">
gotoeosec	ABSM|MOTION
	"forward-section"		!FEWNAMES
	"next-section"			!FEWNAMES
	"down-section"			!FEWNAMES
	']'
	<move forward to the CNT'th start of a \"section\">
gotobosent	ABSM|MOTION
	"previous-sentence"		!FEWNAMES
	"back-sentence"			!FEWNAMES
	"up-sentence"			!FEWNAMES
	'('
	<move to the CNT'th previous start of a \"sentence\">
gotoeosent	ABSM|MOTION
	"forward-sentence"		!FEWNAMES
	"next-sentence"			!FEWNAMES
	"down-sentence"			!FEWNAMES
	')'
	<move to the CNT'th start of a \"sentence\">
gototag		NONE			OPT_TAGS
	"ta"
	"tag"
	"find-tag"			!FEWNAMES
	'^]'
	<look up the given (or under-cursor) name as a \"tag\">
gotochr		ABSM|MOTION		!SMALLER
	"goto-char"
	'^X-G'
	<go to the CNT'th character.  unspecified CNT means end of buffer>
gotopct		ABSM|MOTION		!SMALLER
	"goto-percent"
	<go to the CNT'th percent of the file.  unspecified CNT means end of buffer>
gotocol		MOTION|MINIBUF
	"goto-column"			!FEWNAMES
	'|'
	<go to the CNT'th column on the line>
gotoline	ABSM|MOTION|FL|RANGE
	"goto-line"			!FEWNAMES
	'G'
	<go to the CNT'th line.  unspecified CNT means end of buffer>
# golinenmmark and goexactnmmark are special cases--
#	no ABSM even though they are absolute, since these are the commands
#	that use the last-dot-mark
golinenmmark	MOTION|FL
	"goto-named-mark"		!FEWNAMES
#  single quote -- can't use '''
	'\047'
	<move to line containing the mark, at first non-white character>
goexactnmmark	MOTION
	"goto-named-mark-exact"		!FEWNAMES
	'`'
	<move to the given mark>
gorectnmmark	MOTION|VL_RECT
	"goto-named-mark-rectangular"	!FEWNAMES
	'\0134'
	<move to the mark, implying a rectangle if used with an operator>
vl_help		NONE
	"h"
	"help"
	"list-help"
	"show-help"
	'^A-h'
	'^X-h'
	'FN-?'				KEY_Help
	'FN-m'				KEY_Menu
	<bring up a buffer containing lots of barely sorted information>
histbuff	NONE
	"historical-buffer"		!FEWNAMES
	"_"
	'_'
	<visit the CNT'th previous buffer>
histbuff_to_current_window	NONE
	"historical-buffer-to-current-window"	!FEWNAMES
	'^X-_'
	<visit the CNT'th previous buffer and put it in the current window>
insert		REDO|UNDO
	"insert-chars"			!FEWNAMES
	'FN-i'				KEY_Insert
	'i'
	<insert (CNT copies of) text before the cursor>
insert_no_aindent	REDO|UNDO
	"insert-chars-no-autoindent"	!FEWNAMES
	'^A-i'
	<insert (CNT copies of) text before the cursor, suppressing autoindent>
insertbol	REDO|UNDO
	"insert-chars-at-bol"	!FEWNAMES
	'I'
	<insert (CNT copies of) text before the first non-white char on line>
insfile		REDO|UNDO|GLOBOK|FROM|ZERO|NAMEDF
	"r"
	"insert-file"			!FEWNAMES
	"read-file"			!FEWNAMES
	'^R'
	<read the given file into the current buffer at the current line>
insspace	REDO|UNDO|MINIBUF	!SMALLER
	"insert-space"			!FEWNAMES
	<insert CNT space character(s) at the cursor>
insstring	REDO|UNDO		!SMALLER
	"insert-string"
	<insert (CNT copies of) the given string at the cursor>
joinlines	REDO|UNDO
	"join-lines"			!FEWNAMES
	'J'
	<join CNT lines together with the current one>
for_buffers	NONE			!SMALLER
	"for-buffers"			!FEWNAMES
	"fb"
	'^X-x'
	<for each buffer matched by the pattern, perform the command (CNT as per command)>
killbuffer	GOAL
	"delete-buffer"			!FEWNAMES
	"kill-buffer"			!FEWNAMES
	"ki"
	'^X-k'
	<eliminate the given or (CNT times) under-cursor buffer>
showlength	DFLALL|FROM|TO|NOMOVE
	"buffer-length"			!FEWNAMES
	"="
	<report number of lines in current buffer>
lastnonwhite	MOTION|MINIBUF		!SMALLER
	"last-nonwhite"			!FEWNAMES
	<move to the last non-whitespace character on line>
listbuffers	NONE
	"list-buffers"			!FEWNAMES
	"show-buffers"			!FEWNAMES
	'^A-*'
	<show the current list of buffers.  give CNT to force showing all>
vl_set_args	FILES
	"set-buffers"			!FEWNAMES
	"args"
	<reset the current list of visible buffers.>
vl_set_args2	FILES
	"force-set-buffers"		!FEWNAMES
	"args!"
	<reset the current list of visible buffers, even if some are modified.>
showhistory	NONE			OPT_HISTORY
	"show-history"
	<show the command history>
lineputafter	REDO|UNDO|GLOBOK|FROM|ZERO|OPTREG
	"put-as-lines-after"		!FEWNAMES
	"put"
	'^X-p'
	<insert CNT times from (un)named register, as whole lines, after current line>
lineputbefore	REDO|UNDO|GLOBOK|FROM|OPTREG
	"put-as-lines-before"		!FEWNAMES
	"Put"
	'^X-P'
	<insert CNT times from (un)named register, as whole lines, before current line>
rectputafter	REDO|UNDO|GLOBOK|FROM|ZERO|OPTREG
	"put-as-rectangle-after"	!FEWNAMES
	"rput"
	'^A-p'
	<insert CNT times from (un)named register, as a rectangle, after cursor>
rectputbefore	REDO|UNDO|GLOBOK|FROM|OPTREG
	"put-as-rectangle-before"	!FEWNAMES
	"rPut"
	'^A-P'
	<insert CNT times from (un)named register, as a rectangle, in front of cursor>
lineundo	NONE
	"undo-line-changes"		!FEWNAMES
	'U'
	<undo all changes made to most recently altered line>
loadkreg	USEREG|EXTRA
	"load-register"
	<load the given string into the currently named register.  give CNT for full-lines.>
loadplugin	NONE			OPT_PLUGIN
	"load-plugin"
	<try to load a plug-in from a shared-library file>
showkreg	NONE			OPT_SHOW_REGS
	"show-registers"
	"showregisters"			!FEWNAMES
	"list-registers"		!FEWNAMES
	<show the contents of all of the named and unnamed registers>
sysmap		EXRCOK|EXTRA		OPT_SHOW_MAPS
	"show-system-mapped-chars"
	<list the system function-key maps>
map		EXRCOK|EXTRA
	"map"
	"show-mapped-chars"
	<create a new map, or show list of the current command-mode maps>
map_bang	EXRCOK|EXTRA
	"map!"
	"show-mapped!-chars"
	<create a new map, or show list of the current insert-mode maps>
gui_hide_menus	NONE			OPT_MENUS
	"hide-menus"
	<hide the menu-bar>
gui_remove_menus NONE			OPT_MENUS
	"remove-menus"
	<remove the menus>
gui_show_menus	NONE			OPT_MENUS
	"show-menus"
	<display the menus, if hidden>
vlmenu_load	NONE			OPT_MENUS
	"load-menus"
	<load menus from external file>
nexttag		NONE			OPT_TAGS
	"next-tag"			!FEWNAMES
	'^A-^]'
	<search the tags file(s) for another location for the last tag>
newprocessgroup	NONE
	"new-process-group"
	<put editor into its own process group (X11 version only)>
noremap		EXRCOK|EXTRA
	"noremap"
	<create a new unremappable command-mode map>
noremap_bang	EXRCOK|EXTRA
	"noremap!"
	<create a new unremappable insert-mode map>
cntl_a_func	NONE
	"cntl_a-prefix"
	'^A'
	<the \"Control-A\" prefix, used when typing extended commands>
mvdnnxtwind	GOAL
	"move-next-window-down"		!FEWNAMES
	'^A-^E'
	<move next window down (or buffer up) by CNT lines>
mvupnxtwind	GOAL
	"move-next-window-up"		!FEWNAMES
	'^A-^Y'
	<move next window up (or buffer down) by CNT lines>
mvdnwind	GOAL
	"move-window-down"		!FEWNAMES
	'^E'
	<move window down (or buffer up) by CNT lines>
mvupwind	GOAL
	"move-window-up"		!FEWNAMES
	'^Y'
	<move window up (or buffer down) by CNT lines>
mvrightwind	GOAL
	"move-window-right"		!FEWNAMES
	'^X-^R'
	<scroll window to right by CNT columns, half screen if CNT unspecified>
mvleftwind	GOAL
	"move-window-left"		!FEWNAMES
	'^X-^L'
	<scroll window to left by CNT columns, half screen if CNT unspecified>
nextbuffer	BANG|NAMEDFS
	"n"
	"n!"
	"next-buffer"			!FEWNAMES
	<switch to next buffer (or the least-recently-visited, if \"autobuffer\" on>
namebuffer	NONE
	"rename-buffer"
	<give the current buffer a new name>
name_a_buffer	NONE
	"other-buffer-rename"
	<give the specified buffer a new name>
newline		REDO|UNDO		!SMALLER
	"newline"
	<insert a newline at the cursor, CNT times>
newlength	NONE
	"screen-rows"
	<tell the editor the screen has CNT rows>
newwidth	NONE
	"screen-columns"
	<tell the editor the screen has CNT columns>
nextwind	NONE
	"next-window"			!FEWNAMES
	'^X-o'
	<move to the next window.  repeat with CNT>
nullproc	NONE
	"nop"				!FEWNAMES
	"do-nothing"			!FEWNAMES
	'^Q'
	<do nothing>
namedcmd	NONE
	"execute-named-command"		!FEWNAMES
	":"
	':'
	<execute the given function, by name, applying CNT as its repeat-count>
openup		REDO|UNDO|(FROM)
	"open-line-above-and-insert-chars"	!FEWNAMES
	"i"
	'O'
	<insert text in CNT fresh blank line(s), before current line>
openup_i	REDO|UNDO|(FROM)	!SMALLER
	"insert-indented-chars"		!FEWNAMES
	"i!"
	<insert text in CNT fresh blank line(s), before current line, toggle autoindent>
openup_no_aindent	REDO|UNDO|FROM|ZERO
	"open-line-above-no-autoindent"	!FEWNAMES
	'^A-O'
	<insert text in CNT fresh blank line(s), before current, no autoindent>
opendown	REDO|UNDO|FROM|ZERO
	"open-line-below-and-append-chars"	!FEWNAMES
	"a"
	'o'
	<insert text in CNT fresh blank line(s), after current line>
opendown_no_aindent	REDO|UNDO|FROM|ZERO
	"open-line-below-no-autoindent"	!FEWNAMES
	'^A-o'
	<insert text in CNT fresh blank line(s), after current, no autoindent>
operopenrect	OPER|REDO|UNDO|GLOBOK|(RANGE)
	"open-rectangle"
	'^A-r'
	<open blank rectangular area specified by given motion>
operattrbold	OPER|GLOBOK|RANGE	OPT_SELECTIONS
	"attribute-bold-til"		!FEWNAMES
	'^A-B'
	<display text as bold in the region>
operattrcaseq	REDO|UNDO|OPER|GLOBOK|RANGE	OPT_SELECTIONS
	"attribute-cntl_a-sequences-til"	!FEWNAMES
	"decode-attributes-til"			!FEWNAMES
	'^A-A'
	<display text as given by ^A sequences in the region>
operattrencode	REDO|UNDO|OPER|GLOBOK|RANGE	OPT_SELECTIONS
	"encode-attributes-til"			!FEWNAMES
	'^A-E'
	<encode attributes in the region as ^A sequences>
operattrdirect	OPER|GLOBOK|RANGE	OPT_SELECTIONS&&OPT_FILTER
	"attribute-directly"			!FEWNAMES
	'^A-D'
	<directly attribute region using internal filter>
operattrfilter	OPER|GLOBOK|RANGE	OPT_SELECTIONS&&OPT_SHELL
	"attribute-from-filter-til"		!FEWNAMES
	'^A-F'
	<read/apply ^A sequence attributes by filtering the region>
operattrhc	OPER|GLOBOK|RANGE	OPT_HYPERTEXT
	"attribute-hypertext-til"	!FEWNAMES
	'^A-H'
	<attach hypertext command to region>
operattrital	OPER|GLOBOK|RANGE	OPT_SELECTIONS
	"attribute-italic-til"		!FEWNAMES
	'^A-I'
	<display text in italics in the region>
operattrno	OPER|GLOBOK|RANGE	OPT_SELECTIONS
	"attribute-normal-til"		!FEWNAMES
	"clear-attributes-til"
	'^A-N'
	<display text normally in the region>
operattrrev	OPER|GLOBOK|RANGE	OPT_SELECTIONS
	"attribute-reverse-til"		!FEWNAMES
	'^A-R'
	<display text reversed in the region>
operattrul	OPER|GLOBOK|RANGE	OPT_SELECTIONS
	"attribute-underline-til"	!FEWNAMES
	'^A-U'
	<display text underlined in the region>
operchg		OPER|REDO|UNDO
	"change-til"			!FEWNAMES
	"c"
	"delete-and-insert-chars-til"	!FEWNAMES
	'c'
	<insert text, replacing that in the region>
operchg_i	OPER|REDO|UNDO		!SMALLER
	"change-indented-chars"		!FEWNAMES
	"c!"
	<insert text, replacing that in the region, toggles autoindent>
operdetab	OPER|REDO|UNDO|GLOBOK|(RANGE)
	"detab-lines-til"		!FEWNAMES
	'^A- '
	<convert tabs to spaces in the region>
oper_l_detab	OPER|REDO|UNDO|GLOBOK|(RANGE)
	"leading-detab-lines-til"	!FEWNAMES
	'^X- '
	<convert leading tabs to spaces in the region>
operentab	OPER|REDO|UNDO|GLOBOK|(RANGE)
	"entab-lines-til"		!FEWNAMES
	'^A-^I'
	<convert spaces to tabs where possible in the region>
oper_l_entab	OPER|REDO|UNDO|GLOBOK|(RANGE)
	"leading-entab-lines-til"	!FEWNAMES
	'^X-^I'
	<convert leading spaces to tabs where possible in the region>
opermove	OPER|RANGE|EXTRA
	"move-til"
	"m"
	<move text in the region to the given line>
operlinechg	OPER|REDO|UNDO|(RANGE)
	"change-lines-til"		!FEWNAMES
	"delete-lines-and-insert-chars-til"	!FEWNAMES
	"ch"
	'^X-c'
	<insert text, replacing that on the lines covered by the region>
operdel		OPER|REDO|UNDO
	"delete-til"			!FEWNAMES
	'd'
	<delete text in the region>
operjoin	OPER|REDO|UNDO|GLOBOK|RANGE
	"j"
	"join-lines-til"		!FEWNAMES
	<join together lines in the region, adjusting whitespace at join>
operjoin_x	OPER|REDO|UNDO|GLOBOK|RANGE
	"j!"
	"join-exact-lines-til"		!FEWNAMES
	<join together lines in the region without whitespace adjustment>
operlinedel	OPER|REDO|UNDO|GLOBOK|RANGE|OPTREG
	"delete-lines-til"		!FEWNAMES
	"d"
	'^X-d'
	<delete lines covered by the region>
operfilter	OPER|REDO|UNDO|EXRCOK|RANGE|NAMEDFS|DFLNONE|VI_NL OPT_SHELL
	"filter-til"			!FEWNAMES
	"!"
	'!'
	<pipe the text in the region through an external filter command>
operformat	OPER|REDO|UNDO|(RANGE)	OPT_FORMAT
	"format-til"			!FEWNAMES
	'^A-f'
	'^A-j'
	<format (rejustify) the text in the region>
operflip	OPER|REDO|UNDO|GLOBOK|(RANGE)
	"flip-til"			!FEWNAMES
	"~"
	'^A-~'
	<exchange upper and lowercase on characters in the region>
# FIXME: RANGE is not done perhaps should be...
operglobals	BANG|EXTRA|DFLALL
	"global"
	"g"
	"v!"
	<perform command on all lines containing the given pattern>
# FIXME: RANGE is not done perhaps should be...
opervglobals	BANG|EXTRA|DFLALL
	"inverse-global"
	"vglobal"
	"g!"
	"v"
	<perform command on all lines not containing the given pattern>
operlower	OPER|REDO|UNDO|GLOBOK|(RANGE)
	"lower-til"			!FEWNAMES
	"L"
	'^A-l'
	<convert to lowercase all characters in the region>
operlist	OPER|GLOBOK|(RANGE)
	"list-lines-til"		!FEWNAMES
	"l"
	<show lines, making tabs and newlines visible>
opernumber	OPER|GLOBOK|(RANGE)
	"number-lines-til"		!FEWNAMES
	"nu"
	"#"
	<show lines with their line numbers>
operprint	OPER|GLOBOK|(RANGE)
	"print-lines-til"		!FEWNAMES
	"p"
	<show lines>
operpprint	OPER|GLOBOK|(RANGE)
	"print-prefixed-lines-til"	!FEWNAMES
	"pp"
	<show lines with line numbers>
operselect	OPER|GLOBOK|(RANGE)	OPT_SELECTIONS
	"select-til"			!FEWNAMES
	'^A-s'
	<select (and yank) the text in the region>
operupper	OPER|REDO|UNDO|GLOBOK|(RANGE)
	"upper-til"			!FEWNAMES
	"U"
	'^A-u'
	<convert to uppercase all characters in the region>
operlshift	OPER|REDO|UNDO|GLOBOK|(RANGE)
	"shift-left-til"		!FEWNAMES
	"<"
	'<'
	<shift lines in the region left by one \"shiftwidth\">
operrshift	OPER|REDO|UNDO|GLOBOK|(RANGE)
	"shift-right-til"		!FEWNAMES
	">"
	'>'
	<shift lines in the region right by one \"shiftwidth\">
opersubst	OPER|REDO|UNDO|GLOBOK|RANGE|EXTRA
	"substitute-til"		!FEWNAMES
	"s"
	<perform a text substitution over the region>
opersubstall	OPER|REDO|UNDO|GLOBOK|RANGE|EXTRA
	"substitute-all-til"	!FEWNAMES
	'^X-s'
	<perform an all-occurrence text substitution over the region>
opertrim	REDO|UNDO|GLOBOK|UNDO|(RANGE)
	"trim-lines-til"		!FEWNAMES
	"trim"
	'^A-t'
	<trim trailing whitespace from lines in the region>
operblank       REDO|UNDO|GLOBOK|UNDO|(RANGE)
	"blank-region"
	"blank"
	'^A-b'
	<replace the region with whitespace>
operyank	OPER
	"yank-til"			!FEWNAMES
	'y'
	<get the region into the given named or unnamed register>
operlineyank	OPER|RANGE|OPTREG|NOMOVE
	"yank-lines-til"		!FEWNAMES
	"y"
	'^X-y'
	<get lines covered by region into given named or unnamed register>
opersubstagain	OPER|REDO|UNDO|GLOBOK|RANGE|EXTRA
	"substitute-again-til"		!FEWNAMES
	"&"
	'^A-&'
	<redo the previous text substitution over the region>
opertransf	OPER|RANGE|EXTRA
	"transfer-til"
	"t"
	<copy text in the region>
operwrite	OPER|RANGE|BANG|FILE1|DFLALL|NOMOVE
	"w"
	"w!"
	"W"
	"write-til"			!FEWNAMES
	'^W'
	<write from region to the given file.  whole buffer by default>
oper_wrenc	OPER|RANGE|BANG|FILE1|DFLALL|NOMOVE		OPT_SELECTIONS
	"write-encoded-til"
	<write attributed text from region to file.  whole buffer by default>
overwritechars	REDO|UNDO
	"overwrite-chars"		!FEWNAMES
	'R'
	<replace text while inserting, character by character>
overwstring	REDO|UNDO		!SMALLER
	"overwrite-string"
	<replace text at the cursor by the given string>
onlywind	NONE
	"delete-other-windows"		!FEWNAMES
	'^O'
	'^X-1'
	<eliminate all windows except the current>
perl		OPER|REDO|UNDO|GLOBOK|RANGE|DFLNONE|VIEWOK	OPT_PERL
	"perl"
	<run a perl command>
perldo		OPER|REDO|UNDO|GLOBOK|RANGE|EXTRA		OPT_PERL
	"perldo-til"
	"perldo"
	<run a perl command on each line in a range>
popd		NONE			OPT_SHELL
	"popd"
	<implements bash's popd semantics (i.e., cd `pop dirstack`)>
poswind		GOAL
	"position-window"		!FEWNAMES
	'z'
	<reframe with cursor at center (.,M,m), top (CR,H,t), or bottom (-,L,b)>
prevbuffer	BANG|NAMEDFS		!SMALLER
	"P"
	"previous-buffer"		!FEWNAMES
	<switch to previous buffer (or the most-recently-visited, if \"autobuffer\" on>
prevwind	NONE
	"previous-window"		!FEWNAMES
	'^X-O'
	<move to the previous window.  repeat with CNT>
pushd		NONE			OPT_SHELL
	"pushd"
	<implements bash's pushd semantics (i.e., cd \"dir\", push \"dir\" on dirstack)>
capturecmd	NONE			OPT_SHELL
	"capture-command"		!FEWNAMES
	"pipe-command"			!FEWNAMES
	'^X-!'
	<run a command, capturing its output in the [Output] buffer>
putafter	REDO|UNDO
	"put-after"			!FEWNAMES
	'p'
	<insert CNT copies of (un)named register, after cursor>
putbefore	REDO|UNDO
	"put-before"			!FEWNAMES
	'P'
	<insert CNT copies of (un)named register, before cursor>
pwd		NONE			OPT_SHELL
	"pwd"
	"print-directory"
	<show current directory name>
quit		BANG
	"q"
	"Q"
	"exit"
	"quit"
	'Q'
	'^X-^C'
	<leave the editor, if there are no modified buffers>
quithard	NONE
	"quit-without-save"
	"q!"
	"Q!"
	<leave the editor, regardless of modified buffers>
quickexit	BANG|VI_NL
	"x"
	"x!"
	"xit"
	"wwq"
	"write-changed-buffers-and-quit" !FEWNAMES
	"quick-exit"			!FEWNAMES
	<leave the editor, writing modified buffers as needed>
quote_next	REDO|UNDO
	"quote-next-character"		!FEWNAMES
	<insert the next character literally, CNT times>
vile_refresh	NONE
	"clear-and-redraw"		!FEWNAMES
	'^L'
	<redraw the screen>
remove_mode	NONE			OPT_MAJORMODE
	"remove-majormode"
	"remove-mode"
	<delete the definition of a major mode>
remove_submode	NONE			OPT_MAJORMODE
	"remove-submode"
	<delete the special definition of a submode from a major mode>
remove_scheme	NONE			OPT_COLOR_SCHEMES
	"remove-scheme"
	<delete the given color scheme>
reposition	GOAL			!SMALLER
	"redraw-display"
	<redraw, cursor at center, or CNT'th line, or CNT'th from end if neg>
rep_csrch	MOTION|MINIBUF
	"repeat-char-scan"		!FEWNAMES
	';'
	<repeat the last forward character scan>
replacechar	REDO|UNDO|MINIBUF
	"replace-character"		!FEWNAMES
	'r'
	<replace CNT characters at the cursor with the given character>
respawn		NONE			OPT_SHELL
	"!!"
	"rerun-shell-command"		!FEWNAMES
	<rerun the previously entered shell command>
resize		NONE			!SMALLER
	"resize-window"
	<change the current window to CNT lines>
restwnd		NONE			!SMALLER
	"restore-window"
	<return to window saved with \"save-window\">
reset_majormode	NONE			OPT_MAJORMODE
	"reset-majormode"
	<recompute $majormode for the current buffer>
rev_csrch	MOTION|MINIBUF
	"reverse-char-scan"		!FEWNAMES
	','
	<repeat the last backward character scan>
risearch	NONE			OPT_ISRCH
	"reverse-incremental-search"	!FEWNAMES
	'^X-R'
	<search backwards for a pattern entered character by character>
revsearch	ABSM|MOTION
	"reverse-search"		!FEWNAMES
	'N'
	<search for previous pattern in opposite direction from before>
sel_all		NONE			OPT_SELECTIONS&&OPT_SEL_YANK
	"select-all"	!FEWNAMES
	<select all text in current buffer and yank to unnamed buffer>
sel_clear	NONE			OPT_SELECTIONS
	"selection-clear"	!FEWNAMES
	<clear text selection's highlight attributes>
sel_motion	ABSM|MOTION		OPT_SELECTIONS
	"selection"
	'^S'
	'^A-S'
	<move to selection.  if used with operator, region is the selection>
scrforwsearch	ABSM|MOTION
	"screen-search-forward"		!FEWNAMES
	'^X-/'
	<search forward for $identifier pattern under cursor>
scrbacksearch	ABSM|MOTION
	"screen-search-reverse"		!FEWNAMES
	'^X-?'
	<search backwards for $identifier pattern under cursor>
scrsearchpat	NONE
	"screen-search-pattern-grab"	!FEWNAMES
	'^A-/'
	<set search pattern to $identifier pattern under cursor>
set_charclass	NONE			OPT_SHOW_CTYPE
	"set-char-class"
	<add characters to class, given keyword and regular expression>
unset_charclass	NONE			OPT_SHOW_CTYPE
	"delete-char-class"		!FEWNAMES
	"unset-char-class"
	<remove characters from class, given keyword and regular expression>
reset_charclasses NONE			OPT_SHOW_CTYPE
	"reset-char-classes"
	<remove user-defined character class changes>
set_rs_crlf	NONE			OPT_DOSFILES
	"set-dos-mode"
	"set-rs-crlf"
	<force a \"dos\"-style buffer: trim CR characters, and set \"dos-mode\">
set_rs_lf	NONE			OPT_DOSFILES
	"set-unix-mode"
	"set-rs-lf"
	<force a \"unix\"-style buffer: trim CR characters, and unset \"dos-mode\">
set_rs_cr	NONE			OPT_DOSFILES
	"set-rs-cr"
	<force a \"mac\"-style buffer: convert LF to CR, unset \"dos-mode\">
settab		NONE
	"handle-tab"			!FEWNAMES
	"set-tab"
	'^X-t'
	<set the tabstop setting to CNT.  same as \"set tabstop=NN\">
set_termchrs	NONE			OPT_REBIND&&OPT_TERMCHRS
	"set-terminal"
	<change the value of a terminal special character>
set_window	NONE			!SMALLER
	"setw"
	"set-window"
	<set the current window to a specific buffer>
show_termchrs	NONE			OPT_REBIND&&OPT_TERMCHRS
	"show-terminal-chars"
	<show the values of the terminal special characters>
spawncli	NONE			OPT_SHELL
	"sh"
	"shell"
	"interactive-shell"		!FEWNAMES
	<start a sub-shell in which to run commands>
savewnd		NONE			!SMALLER
	"save-window"
	<mark a window for later return with \"restore-window\">
scrnextup	GOAL
	"scroll-next-window-up"		!FEWNAMES
	'^A-^U'
	<move next window up by CNT half screens>
scrnextdw	GOAL
	"scroll-next-window-down"	!FEWNAMES
	'^A-^D'
	<move next window down by CNT half screens>
setfillcol	NONE
	"set-fill-column"
	'^X-f'
	<set the fillcol setting to CNT.  same as \"set fillcol=NN\">
set_envvar	NONE			OPT_SHELL&&defined(HAVE_PUTENV)
	"setenv"
	"set-environment-variable"
	<set and export a process environment variable>
multimotion	MOTION			OPT_SELECTIONS
	"quoted-motion"			!FEWNAMES
	'q'
	'FN-s'				KEY_Select
	<start (and end) a selection using multiple motions, CNT is type (1) >
multimotionfullline	MOTION		OPT_SELECTIONS
	"quoted-fullline-motion"	!FEWNAMES
	<start (and end) a full-line selection using multiple motions (2) >
multimotionrectangle	MOTION		OPT_SELECTIONS
	"quoted-rectangular-motion"	!FEWNAMES
	'^A-q'
	<start (and end) a rectangular selection using multiple motions (3) >
vl_setkey	NONE			OPT_ENCRYPT
	"set-crypt-key"
	"X"
	'^X-X'
	<set the encryption key on the current buffer>
setlocmode	EXRCOK|EXTRA
	"setl"
	"set-mode"			!FEWNAMES
	<change the current buffer's local value of a mode setting>
setglobmode	NONE
	"se"
	"set"
	"setg"
	"set-global-mode"
	<change the global value of a mode setting>
setnmmark	FROM|EXTRA|NOMOVE
	"set-named-mark"		!FEWNAMES
	"k"
	'm'
	<set the given named mark to the current cursor location>
setvar		NONE			OPT_EVAL
	"setv"
	"set-variable"
	<set the given vile variable to a value>
unsetvar	NONE			OPT_EVAL
	"unsetv"
	"unset-variable"
	<reset the given vile variable to an empty string or default-value>
showcpos	NONE
	"position"			!FEWNAMES
	'^G'
	'^X-='
	<report information about current buffer and character>
listmodes	NONE
	"modes"
	"show-modes"
	"list-modes"
	"setall"
	"setgall"
	"gmodes"
	"show-global-modes"
	"showmodes"
	"showgmodes"
	<report values of all mode settings>
list_majormodes	NONE			OPT_MAJORMODE
	"list-majormodes"		!FEWNAMES
	"show-majormodes"
	<report values of all majormode settings (use CNT for verbose listing)>
listvars	NONE			OPT_SHOW_EVAL
	"list-variables"		!FEWNAMES
	"show-variables"
	"showvars"			!FEWNAMES
	<report values of all variables, built-in and user>
showversion	EXRCOK
	"version"
	<report version information for the editor>
showmarks	NONE			OPT_SHOW_MARKS
	"marks"
	"show-marks"
	<show named marks for the current buffer>
showmemory	NONE			SYS_MSDOS&&(CC_TURBO||CC_WATCOM||CC_DJGPP)
	"memory"
	<report on available memory>
showtagstack	NONE			OPT_SHOW_TAGS
	"tags"				!FEWNAMES
	"tagstack"
	"show-tagstack"
	<show the stack of successive tag references>
shrinkwind	GOAL
	"shrink-window"			!FEWNAMES
	'v'
	<decrease the size of the current window by CNT lines>
vl_source	EXRCOK|NAMEDF
	"exsource"
	<source a file of ex commands>
vl_spawn	NONE			OPT_SHELL
	"shell-command"			!FEWNAMES
	<run a shell command>
poundc_func	NONE
	"function-prefix"
	'#'
	<prefix used to represent commands normally bound to function keys>
splitwind	NONE
	"split-current-window"		!FEWNAMES
	'^X-2'
	<split the window in half; CNT of 1 or 2 chooses which becomes current>
storemac	NONE
	"store-macro"
	<store script text into CNT'th macro, up to line starting with ~endm>
storeproc	EXRCOK|EXTRA		OPT_PROCEDURES
	"store-procedure"
	<store script text into given named stored-procedure; give CNT for store-macro CNT>
subst_again	REDO|UNDO|GLOBOK
	"substitute-again"		!FEWNAMES
	'&'
	<redo the previous text substitution>
syncfile	NONE			SYS_WINNT&&defined(VILE_OLE)
	"sync-file"
	<synchronize the current buffer's file in DevStudio's editor>
swapcbrdkeys	NONE			SYS_WINNT
	"swap-clipboard-keys"
	<swap clipboard insert key mappings>
togglelistbuffers	NONE
	"*"
	"toggle-buffer-list"		!FEWNAMES
	'*'
	<show or hide the buffer list. give CNT to force showing all>
twiddle		REDO|UNDO|MINIBUF	!SMALLER
	"transpose-characters"		!FEWNAMES
	<exchange the two characters under and to the left of the cursor>
unbindkey	NONE			OPT_REBIND
	"unbind-key"
	<break the binding between a keystroke and a function>
unbind_i_key	NONE			OPT_REBIND
	"unbind-insmode-key"
	<break the binding between a keystroke and a function in insert-mode>
unbind_c_key	NONE			OPT_REBIND
	"unbind-cmdmode-key"
	<break the binding between a keystroke and a function in command-mode>
unbind_s_key	NONE			OPT_REBIND
	"unbind-selmode-key"
	<break the binding between a keystroke and a function in selection-mode>
undo		NONE
	"undo-change"			!FEWNAMES
	'u'
	<undo the last change made to a buffer;  repeat to reapply the change>
inf_undo	NONE
	"repeat-undo-change"			!FEWNAMES
	<undo/redo more changes, continuing in \"direction\" of last undo/redo>
backundo	NONE
	"undo-changes-backward"		!FEWNAMES
	'^X-u'
	<undo changes made to a buffer;  repeat to undo previous changes>
forwredo	NONE
	"redo-changes-forward"		!FEWNAMES
	'^X-r'
	<redo changes made to a buffer, after they have been undone>
unabbr		EXRCOK|BANG|EXTRA
	"unabbreviate"
	<delete an abbreviation>
reptc_func	NONE
	"universal-argument"		!FEWNAMES
	'K'
	<supply a numeric CNT to a command. sets CNT to 4, 16, 64, 256, etc.>
unimpl		NONE
	"unimplemented-command"		!FEWNAMES
	<place holder for the todo list>
unmark		NONE
	"unmark-buffer"
	<clear the \"modified\" status of a buffer>
unmap		EXRCOK|BANG|EXTRA
	"unmap"
	<delete a command-mode mapping>
unmap_bang	EXRCOK|EXTRA
	"unmap!"
	<delete an insert-mode mapping>
unmap_system	EXRCOK|EXTRA
	"unmap-system-chars"
	<delete a system function-key mapping>
untagpop	NONE			OPT_TAGS
	"tag-pop"			!FEWNAMES
	"pop"
	'^X-^]'
	'^T'
	<restore cursor and buffer to location before last tag lookup>
upscreen	NONE			!SMALLER
	"update-screen"
	<force the screen to be updated; flushes all pending output>
usebuffer	NONE
	"b"
	"buffer"
	"select-buffer"			!FEWNAMES
	<switch to the given buffer; will not look for a file by that name>
edit_buffer	NONE
	"B"
	"edit-buffer"			!FEWNAMES
	<make or switch to the given buffer>
popup_buffer	NONE			!SMALLER
	"popup-buffer"
	"open-window"			!FEWNAMES
	<open window for the given buffer>
popdown_buffer	NONE			!SMALLER
	"popdown-buffer"
	"close-windows"			!FEWNAMES
	<close all windows for the given buffer>
usekreg		REDO|USEREG
	"use-register"			!FEWNAMES
	'"'
	<name a register, for use with a following command which references it>
userbeep	NONE			!SMALLER
	"beep"
	'FN-b'				KEY_BackTab
	<force the terminal to ring (or flash, if \"set flash\" is active)>
visual		NONE
	"visual"
	<switch from non-existent exile mode back to visual mode.  unimplemented>
vglobals	NONE
	"ovglobals"			VILE_NEVER
viewfile	NONE
	"view-file"
	<bring given file or existing buffer into window, mark it \"view-only\">
vl_dirs		NONE			OPT_SHELL
	"dirs"
	<list internal directory stack in scratch buffer>
vl_dirs_add 	NONE			OPT_SHELL
	"dirs-add"
	<add a dir to DirStack[top - 1]; cwd is unaffected>
vl_dirs_clear	NONE			OPT_SHELL
	"dirs-clear"
	<clear internal directory stack; cwd is unaffected>
waitfile	NONE			SYS_WINNT&&defined(VILE_OLE)
	"wait-file"
	<wait for file to grow larger than 0 bytes, timeout specified as arg>
which_exec	NONE			OPT_SHOW_WHICH
	"which-exec"
	<show which file would be exec'd from $PATH + $libdir-path, CNT for popup>
which_source	NONE			OPT_SHOW_WHICH
	"which-source"
	<show which file would be source'd from $startup-path, CNT for popup>
purge_recent_files	NONE		SYS_WINNT
	"purge-recent-files"
	<purge winvile's recent file list>
purge_recent_folders	NONE	SYS_WINNT
	"purge-recent-folders"
	<purge winvile's recent folder list>
wincd	      	NONE			SYS_WINNT
	"wincd"
	<graphical CD>
winopen_nocd	NONE			SYS_WINNT
	"winopen-nocd"
	<launch Windows common dialog box to open file(s), CWD is unmodified>
winopen      	NONE			SYS_WINNT
	"winopen"
	<launch Windows common dialog box to open file(s), CWD changes as side effect>
winpg_setup    	NONE			SYS_WINNT&&DISP_NTWIN
	"winpage-setup"
	<launch Windows common page setup dialog>
winprint      	NONE			SYS_WINNT&&DISP_NTWIN
	"winprint"
	<print current buffer or selection>
winsave_nocd	NONE			SYS_WINNT
	"winsave-nocd"
	<launch Windows common dialog box to save current buffer, CWD is unmodified>
winsave      	NONE			SYS_WINNT
	"winsave"
	<launch Windows common dialog box to save current buffer, CWD changes as side effect>
ResetRGBPalette	NONE			SYS_WINNT&&DISP_NTWIN
	"reset-rgb-palette"
	<reset palette (see set-rgb-palette)>
SetRGBPalette	NONE			SYS_WINNT&&DISP_NTWIN
	"set-rgb-palette"
	<set palette with parameters colornum red green blue>
wordcount	RANGE			OPT_WORDCOUNT
	"count-words"
	<count words, lines, and chars in the region>
writeallbuffers	BANG|VI_NL
	"wall"
	"wall!"
	"write-all-buffers"		!FEWNAMES
	<attempt to write all buffers whether or not marked \"modified\">
writeallchanged	BANG|VI_NL
	"ww"
	"ww!"
	"write-changed-buffers"		!FEWNAMES
	<attempt to write any buffers which are marked \"modified\">
writequit	VI_NL
	"wq"
	"wq!"
	"Wq"
	"WQ"
	"write-file-and-quit"		!FEWNAMES
	<write the current buffer, and quit if no other buffers are modified>
wrapword	REDO|UNDO		!SMALLER
	"wrap-word"
	<split line in two at first preceding word break.  give CNT to trim blanks.>
writemsg	NONE			!SMALLER
	"write-message"
	<put a message on the message line>
yankline	NONE
	"yank-line"			!FEWNAMES
	'Y'
	<get the current line into the given named or unnamed register>
mouse_motion	ABSM|MOTION		OPT_XTERM||DISP_X11
	'FN-M'				KEY_Mouse
	<dummy command to support mouse movements internally>
copy_to_clipboard NONE			DISP_X11
	"copy-to-clipboard"
	<copies the currently highlighted selection to the cut buffer>
paste_from_clipboard REDO|UNDO		DISP_X11
	"paste-from-clipboard"
	<pastes the contents of the cut buffer>
paste_from_primary REDO|UNDO		DISP_X11
	"paste-from-primary"
	<pastes the contents of the primary selection>
xterm_mouse_t	NONE			(OPT_XTERM>=3)
	'FN-t'				KEY_text
	<dummy command to support xterm mouse operation>
xterm_mouse_T	NONE			(OPT_XTERM>=3)
	'FN-T'				KEY_textInvalid
	<dummy command to support xterm mouse operation>
zzquit		BANG|VI_NL
	'Z'
	"stuttered-write-all-and-quit"	!FEWNAMES
	<if repeated, leave the editor, writing modified buffers as needed>
#
# --------------------------- Win32 Key Bindings -----------------------
#
# Key bindings from here to the end of file use the following special
# Win32 keyboard modifiers:  SHIFT, CTRL (control key), and ALT.  To
# date, only the following keys may be bound to these modifiers:
#
#     Insert   '6'
#
# Why, you ask?  Good question.  I actually wanted to extend vile to
# permit the user to bind any QWERTY key with the aforementioned modifiers
# and truly open up the "map space" for Win32 users.  However, after reading
# Chapter 5 of _Programming Windows 95_ (by Charles Petzold), it became
# clear to me that adding the necessary infrastructre (in ntconio.c and
# ntwinio.c) would most likely have a very negative impact on non-English
# users (i.e., most of the dead key support for diacritic marks would be
# lost if ntconio.c and ntwinio.c began translating the full spectrum of
# Windows KEYDOWN and CHAR messages).  Consequently, it's much safer to
# add special modifier bindings (e.g., Alt+Insert), on a case-by-case basis
# to keys that probably won't be used:
#
# a) in future winvile menus, and
# b) as diacritic generating keys.
#
# If you want to add additional bindings, say Alt+Delete, you'll need to
# modify (at least):
#
#   bind.c   (to properly decode the Delete key)
#   mktbls.c (to accept Delete when parsing W32KY specifications in this file)
#
# Other bindings may require modifications to the keyxlate table in
# ntconio.c and ntwinio.c .  In general, I wouldn't add anymore special
# Win32 bindings than necessary and I'd definitely read the aforementioned
# chapter in Petzold's book before making a lot of changes to vile.
#
#                               Notes
#                               -----
# 1) The key "conditional" (which optionally follows the key binding), must
#    be hardwired as W32KY (no exceptions).
#
# 2) I haven't made any attempt to permit vile users to map/bind the
#    special modifiers (for all of the reasons listed above).  Basically,
#    this is a one-way feature (i.e., the bindings are applied only at
#    compile time and only via this file).
#
# - Clark Morgan  July, 1998
#
cbrdcpy_unnamed NONE			SYS_WINNT
	"copy-unnamed-reg-to-clipboard"
	'ALT+INSERT'			W32KY
	<copies the unnamed register selection to the windows clipboard>
cbrdcut		REDO|UNDO		SYS_WINNT
	"cut-to-clipboard"
	'SHIFT+DELETE'			W32KY
	<cut the current selection to the unnamed register and windows clipboard>
cbrdpaste	REDO|UNDO		SYS_WINNT
	"paste-from-clipboard"
	'SHIFT+INSERT'			W32KY
	<paste the windows clipboard contents>
opercbrdcpy	OPER|RANGE|NOMOVE	SYS_WINNT
	"copy-to-clipboard-til"
	'CTRL+INSERT'			W32KY
	<copies the specified region to the windows clipboard>
windeltxtsel	REDO|UNDO		SYS_WINNT
	"delete-text-selection"
	'ALT+DELETE'			W32KY
	<delete the current text selection to the unnamed register>