Annotation of src/usr.bin/vim/cmdtab.tab, Revision 1.1.1.1
1.1 downsj 1: /* $OpenBSD$ */
2: /* vi:ts=4:sw=4
3: *
4: * VIM - Vi IMproved
5: *
6: * Code Contributions By: Bram Moolenaar mool@plex.nl
7: * Tim Thompson twitch!tjt
8: * Tony Andrews onecom!wldrdg!tony
9: * G. R. (Fred) Walter watmath!watcgl!grwalter
10: */
11:
12: /*
13: * |This file is read by mkcmdtab to produce cmdtab.h.
14: *
15: * The bars are used to recognize file positions. Do not insert/delete them.|
16: */
17:
18: #define RANGE 0x01 /* allow a linespecs */
19: #define BANG 0x02 /* allow a ! after the command name */
20: #define EXTRA 0x04 /* allow extra args after command name */
21: #define XFILE 0x08 /* expand wildcards in extra part */
22: #define NOSPC 0x10 /* no spaces allowed in the extra part */
23: #define DFLALL 0x20 /* default file range is 1,$ */
24: #define NODFL 0x40 /* do not default to the current file name */
25: #define NEEDARG 0x80 /* argument required */
26: #define TRLBAR 0x100 /* check for trailing vertical bar */
27: #define REGSTR 0x200 /* allow "x for register designation */
28: #define COUNT 0x400 /* allow count in argument, after command */
29: #define NOTRLCOM 0x800 /* no trailing comment allowed */
30: #define ZEROR 0x1000 /* zero line number allowed */
31: #define USECTRLV 0x2000 /* do not remove CTRL-V from argument */
32: #define NOTADR 0x4000 /* number before command is not an address */
33: #define EDITCMD 0x8000 /* has "+command" argument */
34: #define BUFNAME 0x10000 /* accepts buffer name */
35: #define FILES (XFILE + EXTRA) /* multiple extra files allowed */
36: #define WORD1 (EXTRA + NOSPC) /* one extra word allowed */
37: #define FILE1 (FILES + NOSPC) /* 1 file allowed, defaults to current file */
38: #define NAMEDF (FILE1 + NODFL) /* 1 file allowed, defaults to "" */
39: #define NAMEDFS (FILES + NODFL) /* multiple files allowed, default is "" */
40:
41: /*
42: * This array maps ex command names to command codes. The order in which
43: * command names are listed below is significant -- ambiguous abbreviations
44: * are always resolved to be the first possible match (e.g. "r" is taken
45: * to mean "read", not "rewind", because "read" comes before "rewind").
46: * Not supported commands are included to avoid ambiguities.
47: */
48: static struct
49: {
50: char_u *cmd_name; /* name of the command */
51: long_u cmd_argt; /* command line arguments permitted/needed/used */
52: } cmdnames[] =
53: {
54: | {(char_u *)"append", BANG+RANGE+TRLBAR}, /* not supported */
55: {(char_u *)"all", RANGE+NOTADR+COUNT+TRLBAR},
56: {(char_u *)"abbreviate", EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
57: {(char_u *)"abclear", TRLBAR},
58: {(char_u *)"args", BANG+NAMEDFS+EDITCMD+TRLBAR},
59: {(char_u *)"argument", BANG+RANGE+NOTADR+COUNT+EXTRA+EDITCMD+TRLBAR},
60: {(char_u *)"ascii", TRLBAR},
61: {(char_u *)"autocmd", BANG+EXTRA+NOTRLCOM+USECTRLV},
62: {(char_u *)"buffer", RANGE+NOTADR+BUFNAME+COUNT+EXTRA+TRLBAR},
63: {(char_u *)"ball", RANGE+NOTADR+COUNT+TRLBAR},
64: {(char_u *)"buffers", TRLBAR},
65: {(char_u *)"bdelete", BANG+RANGE+BUFNAME+NOTADR+COUNT+EXTRA+TRLBAR},
66: {(char_u *)"bunload", BANG+RANGE+BUFNAME+NOTADR+COUNT+EXTRA+TRLBAR},
67: {(char_u *)"bmodified", RANGE+NOTADR+COUNT+TRLBAR},
68: {(char_u *)"bnext", RANGE+NOTADR+COUNT+TRLBAR},
69: {(char_u *)"bNext", RANGE+NOTADR+COUNT+TRLBAR},
70: {(char_u *)"bprevious", RANGE+NOTADR+COUNT+TRLBAR},
71: {(char_u *)"brewind", RANGE+TRLBAR},
72: {(char_u *)"blast", RANGE+TRLBAR},
73: {(char_u *)"change", BANG+RANGE+COUNT+TRLBAR}, /* not supported */
74: {(char_u *)"cabbrev", EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
75: {(char_u *)"cabclear", TRLBAR},
76: {(char_u *)"cc", RANGE+NOTADR+COUNT+TRLBAR+BANG},
77: {(char_u *)"cd", NAMEDF+TRLBAR},
78: {(char_u *)"center", TRLBAR+RANGE+EXTRA},
79: {(char_u *)"cfile", TRLBAR+FILE1+BANG},
80: {(char_u *)"chdir", NAMEDF+TRLBAR},
81: {(char_u *)"checkpath", TRLBAR+BANG},
82: {(char_u *)"clist", TRLBAR+BANG},
83: {(char_u *)"close", BANG+TRLBAR},
84: {(char_u *)"cmap", EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
85: {(char_u *)"cmapclear", TRLBAR},
86: {(char_u *)"cmenu", EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
87: {(char_u *)"cnext", RANGE+NOTADR+COUNT+TRLBAR+BANG},
88: {(char_u *)"cNext", RANGE+NOTADR+COUNT+TRLBAR+BANG},
89: {(char_u *)"cnoremap", EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
90: {(char_u *)"cnoremenu", EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
91: {(char_u *)"cnoreabbrev", EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
92: {(char_u *)"copy", RANGE+EXTRA+TRLBAR},
93: {(char_u *)"cprevious", RANGE+NOTADR+COUNT+TRLBAR+BANG},
94: {(char_u *)"cquit", TRLBAR+BANG},
95: {(char_u *)"cunmap", EXTRA+TRLBAR+USECTRLV},
96: {(char_u *)"cunmenu", EXTRA+TRLBAR+USECTRLV},
97: {(char_u *)"cunabbrev", EXTRA+TRLBAR+USECTRLV},
98: {(char_u *)"delete", RANGE+REGSTR+COUNT+TRLBAR},
99: {(char_u *)"display", EXTRA+NOTRLCOM+TRLBAR},
100: {(char_u *)"digraphs", EXTRA+TRLBAR},
101: {(char_u *)"djump", BANG+RANGE+DFLALL+EXTRA},
102: {(char_u *)"dlist", BANG+RANGE+DFLALL+EXTRA},
103: {(char_u *)"doautocmd", EXTRA+TRLBAR},
104: {(char_u *)"dsearch", BANG+RANGE+DFLALL+EXTRA},
105: {(char_u *)"dsplit", BANG+RANGE+DFLALL+EXTRA+TRLBAR},
106: {(char_u *)"edit", BANG+FILE1+EDITCMD+TRLBAR},
107: {(char_u *)"ex", BANG+FILE1+EDITCMD+TRLBAR},
108: {(char_u *)"exit", RANGE+BANG+FILE1+DFLALL+TRLBAR},
109: {(char_u *)"file", BANG+FILE1+TRLBAR},
110: {(char_u *)"files", TRLBAR},
111: {(char_u *)"fixdel", TRLBAR},
112: {(char_u *)"global", RANGE+BANG+EXTRA+DFLALL},
113: {(char_u *)"gui", BANG+NAMEDFS+EDITCMD+TRLBAR},
114: {(char_u *)"gvim", BANG+NAMEDFS+EDITCMD+TRLBAR},
115: {(char_u *)"help", EXTRA+NOTRLCOM},
116: {(char_u *)"insert", BANG+RANGE+TRLBAR}, /* not supported */
117: {(char_u *)"iabbrev", EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
118: {(char_u *)"iabclear", TRLBAR},
119: {(char_u *)"ijump", BANG+RANGE+DFLALL+EXTRA},
120: {(char_u *)"ilist", BANG+RANGE+DFLALL+EXTRA},
121: {(char_u *)"imap", EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
122: {(char_u *)"imapclear", TRLBAR},
123: {(char_u *)"imenu", EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
124: {(char_u *)"inoremap", EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
125: {(char_u *)"inoremenu", EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
126: {(char_u *)"inoreabbrev", EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
127: {(char_u *)"isearch", BANG+RANGE+DFLALL+EXTRA},
128: {(char_u *)"isplit", BANG+RANGE+DFLALL+EXTRA+TRLBAR},
129: {(char_u *)"iunmap", EXTRA+TRLBAR+USECTRLV},
130: {(char_u *)"iunmenu", EXTRA+TRLBAR+USECTRLV},
131: {(char_u *)"iunabbrev", EXTRA+TRLBAR+USECTRLV},
132: {(char_u *)"join", BANG+RANGE+COUNT+TRLBAR},
133: {(char_u *)"jumps", TRLBAR},
134: {(char_u *)"k", RANGE+WORD1+TRLBAR},
135: {(char_u *)"list", RANGE+COUNT+TRLBAR},
136: {(char_u *)"last", EXTRA+BANG+EDITCMD+TRLBAR},
137: {(char_u *)"left", TRLBAR+RANGE+EXTRA},
138: {(char_u *)"ls", TRLBAR},
139: {(char_u *)"move", RANGE+EXTRA+TRLBAR},
140: {(char_u *)"mark", RANGE+WORD1+TRLBAR},
141: {(char_u *)"marks", EXTRA+TRLBAR},
142: {(char_u *)"map", BANG+EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
143: {(char_u *)"mapclear", BANG+TRLBAR},
144: {(char_u *)"make", NEEDARG+EXTRA+TRLBAR+XFILE},
145: {(char_u *)"menu", BANG+EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
146: {(char_u *)"mkexrc", BANG+FILE1+TRLBAR},
147: {(char_u *)"mkvimrc", BANG+FILE1+TRLBAR},
148: {(char_u *)"mfstat", TRLBAR}, /* for debugging */
149: {(char_u *)"mode", WORD1+TRLBAR},
150: {(char_u *)"next", RANGE+NOTADR+BANG+NAMEDFS+EDITCMD+TRLBAR},
151: {(char_u *)"new", BANG+FILE1+RANGE+NOTADR+EDITCMD+TRLBAR},
152: {(char_u *)"nmap", EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
153: {(char_u *)"nmapclear", TRLBAR},
154: {(char_u *)"nmenu", EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
155: {(char_u *)"nnoremap", EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
156: {(char_u *)"nnoremenu", EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
157: {(char_u *)"number", RANGE+COUNT+TRLBAR},
158: {(char_u *)"#", RANGE+COUNT+TRLBAR},
159: {(char_u *)"noremap", BANG+EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
160: {(char_u *)"noremenu", BANG+EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
161: {(char_u *)"noreabbrev", EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
162: {(char_u *)"normal", BANG+EXTRA+NEEDARG+NOTRLCOM+USECTRLV},
163: {(char_u *)"nunmap", EXTRA+TRLBAR+USECTRLV},
164: {(char_u *)"nunmenu", EXTRA+TRLBAR+USECTRLV},
165: {(char_u *)"Next", EXTRA+RANGE+NOTADR+COUNT+BANG+EDITCMD+TRLBAR},
166: {(char_u *)"open", TRLBAR}, /* not supported */
167: {(char_u *)"only", BANG+TRLBAR},
168: {(char_u *)"print", RANGE+COUNT+TRLBAR},
169: {(char_u *)"pop", RANGE+NOTADR+COUNT+TRLBAR+ZEROR},
170: {(char_u *)"put", RANGE+BANG+REGSTR+TRLBAR},
171: {(char_u *)"preserve", TRLBAR},
172: {(char_u *)"previous", EXTRA+RANGE+NOTADR+COUNT+BANG+EDITCMD+TRLBAR},
173: {(char_u *)"pwd", TRLBAR},
174: {(char_u *)"quit", BANG+TRLBAR},
175: {(char_u *)"qall", BANG+TRLBAR},
176: {(char_u *)"read", BANG+RANGE+NAMEDF+TRLBAR+ZEROR},
177: {(char_u *)"rewind", EXTRA+BANG+EDITCMD+TRLBAR},
178: {(char_u *)"recover", BANG+FILE1+TRLBAR},
179: {(char_u *)"redo", TRLBAR},
180: {(char_u *)"registers", EXTRA+NOTRLCOM+TRLBAR},
181: {(char_u *)"resize", TRLBAR+WORD1},
182: {(char_u *)"retab", TRLBAR+RANGE+DFLALL+BANG+WORD1},
183: {(char_u *)"right", TRLBAR+RANGE+EXTRA},
184: {(char_u *)"rviminfo", BANG+FILE1+TRLBAR}, /* only when VIMINFO defined */
185: {(char_u *)"substitute", RANGE+EXTRA},
186: {(char_u *)"sargument", BANG+RANGE+NOTADR+COUNT+EXTRA+EDITCMD+TRLBAR},
187: {(char_u *)"sall", RANGE+NOTADR+COUNT+TRLBAR},
188: {(char_u *)"sbuffer", RANGE+NOTADR+BUFNAME+COUNT+EXTRA+TRLBAR},
189: {(char_u *)"sball", RANGE+NOTADR+COUNT+TRLBAR},
190: {(char_u *)"sbmodified", RANGE+NOTADR+COUNT+TRLBAR},
191: {(char_u *)"sbnext", RANGE+NOTADR+COUNT+TRLBAR},
192: {(char_u *)"sbNext", RANGE+NOTADR+COUNT+TRLBAR},
193: {(char_u *)"sbprevious", RANGE+NOTADR+COUNT+TRLBAR},
194: {(char_u *)"sbrewind", TRLBAR},
195: {(char_u *)"sblast", TRLBAR},
196: {(char_u *)"suspend", TRLBAR+BANG},
197: {(char_u *)"set", EXTRA+TRLBAR},
198: {(char_u *)"shell", TRLBAR},
199: {(char_u *)"sleep", RANGE+COUNT+NOTADR+TRLBAR},
200: {(char_u *)"source", BANG+NAMEDF+NEEDARG+TRLBAR},
201: {(char_u *)"split", BANG+FILE1+RANGE+NOTADR+EDITCMD+TRLBAR},
202: {(char_u *)"snext", RANGE+NOTADR+BANG+NAMEDFS+EDITCMD+TRLBAR},
203: {(char_u *)"sNext", EXTRA+RANGE+NOTADR+COUNT+BANG+EDITCMD+TRLBAR},
204: {(char_u *)"sprevious", EXTRA+RANGE+NOTADR+COUNT+BANG+EDITCMD+TRLBAR},
205: {(char_u *)"srewind", EXTRA+BANG+EDITCMD+TRLBAR},
206: {(char_u *)"slast", EXTRA+BANG+EDITCMD+TRLBAR},
207: {(char_u *)"stop", TRLBAR+BANG},
208: {(char_u *)"stag", RANGE+NOTADR+BANG+WORD1+TRLBAR+ZEROR},
209: {(char_u *)"sunhide", RANGE+NOTADR+COUNT+TRLBAR},
210: {(char_u *)"sview", NEEDARG+RANGE+BANG+FILE1+EDITCMD+TRLBAR},
211: {(char_u *)"swapname", TRLBAR},
212: {(char_u *)"t", RANGE+EXTRA+TRLBAR},
213: {(char_u *)"tag", RANGE+NOTADR+BANG+WORD1+TRLBAR+ZEROR},
214: {(char_u *)"tags", TRLBAR},
215: {(char_u *)"undo", TRLBAR},
216: {(char_u *)"unabbreviate", EXTRA+TRLBAR+USECTRLV},
217: {(char_u *)"unhide", RANGE+NOTADR+COUNT+TRLBAR},
218: {(char_u *)"unmap", BANG+EXTRA+TRLBAR+USECTRLV},
219: {(char_u *)"unmenu", BANG+EXTRA+TRLBAR+USECTRLV},
220: {(char_u *)"vglobal", RANGE+EXTRA+DFLALL},
221: {(char_u *)"version", EXTRA+TRLBAR},
222: {(char_u *)"visual", RANGE+BANG+FILE1+EDITCMD+TRLBAR},
223: {(char_u *)"view", RANGE+BANG+FILE1+EDITCMD+TRLBAR},
224: {(char_u *)"vmap", EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
225: {(char_u *)"vmapclear", TRLBAR},
226: {(char_u *)"vmenu", EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
227: {(char_u *)"vnoremap", EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
228: {(char_u *)"vnoremenu", EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
229: {(char_u *)"vunmap", EXTRA+TRLBAR+USECTRLV},
230: {(char_u *)"vunmenu", EXTRA+TRLBAR+USECTRLV},
231: {(char_u *)"write", RANGE+BANG+FILE1+DFLALL+TRLBAR},
232: {(char_u *)"wnext", RANGE+NOTADR+BANG+FILE1+TRLBAR},
233: {(char_u *)"wNext", RANGE+NOTADR+BANG+FILE1+TRLBAR},
234: {(char_u *)"wprevious", RANGE+NOTADR+BANG+FILE1+TRLBAR},
235: {(char_u *)"winsize", EXTRA+NEEDARG+TRLBAR},
236: {(char_u *)"wq", RANGE+BANG+FILE1+DFLALL+TRLBAR},
237: {(char_u *)"wall", BANG+TRLBAR},
238: {(char_u *)"wqall", BANG+FILE1+DFLALL+TRLBAR},
239: {(char_u *)"wviminfo", BANG+FILE1+TRLBAR}, /* only when VIMINFO defined */
240: {(char_u *)"xit", RANGE+BANG+FILE1+DFLALL+TRLBAR},
241: {(char_u *)"xall", BANG+TRLBAR},
242: {(char_u *)"yank", RANGE+REGSTR+COUNT+TRLBAR},
243: {(char_u *)"z", RANGE+COUNT+TRLBAR}, /* not supported */
244: {(char_u *)"@", RANGE+EXTRA+TRLBAR},
245: {(char_u *)"!", RANGE+BANG+NAMEDFS},
246: {(char_u *)"<", RANGE+COUNT+TRLBAR},
247: {(char_u *)">", RANGE+COUNT+TRLBAR},
248: {(char_u *)"=", RANGE+TRLBAR},
249: {(char_u *)"&", RANGE+EXTRA},
250: {(char_u *)"~", RANGE+EXTRA}
251: |
252: };
253: |