xref: /vim-8.2.3635/src/ex_cmds.h (revision cf2d8dee)
1 /* vi:set ts=8 sts=4 sw=4:
2  *
3  * VIM - Vi IMproved	by Bram Moolenaar
4  *
5  * Do ":help uganda"  in Vim to read copying and usage conditions.
6  * Do ":help credits" in Vim to see a list of people who contributed.
7  */
8 
9 /*
10  * This file defines the Ex commands.
11  * When DO_DECLARE_EXCMD is defined, the table with ex command names and
12  * options results.
13  * When DO_DECLARE_EXCMD is NOT defined, the enum with all the Ex commands
14  * results.
15  * This clever trick was invented by Ron Aaron.
16  */
17 
18 /*
19  * When adding an Ex command:
20  * 1. Add an entry in the table below.  Keep it sorted on the shortest
21  *    version of the command name that works.  If it doesn't start with a
22  *    lower case letter, add it at the end.
23  * 2. Add a "case: CMD_xxx" in the big switch in ex_docmd.c.
24  * 3. Add an entry in the index for Ex commands at ":help ex-cmd-index".
25  * 4. Add documentation in ../doc/xxx.txt.  Add a tag for both the short and
26  *    long name of the command.
27  */
28 
29 #ifdef RANGE
30 # undef RANGE			/* SASC on Amiga defines it */
31 #endif
32 
33 #define RANGE		0x001	/* allow a linespecs */
34 #define BANG		0x002	/* allow a ! after the command name */
35 #define EXTRA		0x004	/* allow extra args after command name */
36 #define XFILE		0x008	/* expand wildcards in extra part */
37 #define NOSPC		0x010	/* no spaces allowed in the extra part */
38 #define	DFLALL		0x020	/* default file range is 1,$ */
39 #define WHOLEFOLD	0x040	/* extend range to include whole fold also
40 				   when less than two numbers given */
41 #define NEEDARG		0x080	/* argument required */
42 #define TRLBAR		0x100	/* check for trailing vertical bar */
43 #define REGSTR		0x200	/* allow "x for register designation */
44 #define COUNT		0x400	/* allow count in argument, after command */
45 #define NOTRLCOM	0x800	/* no trailing comment allowed */
46 #define ZEROR	       0x1000	/* zero line number allowed */
47 #define USECTRLV       0x2000	/* do not remove CTRL-V from argument */
48 #define NOTADR	       0x4000	/* number before command is not an address */
49 #define EDITCMD	       0x8000	/* allow "+command" argument */
50 #define BUFNAME	      0x10000L	/* accepts buffer name */
51 #define BUFUNL	      0x20000L	/* accepts unlisted buffer too */
52 #define ARGOPT	      0x40000L	/* allow "++opt=val" argument */
53 #define SBOXOK	      0x80000L	/* allowed in the sandbox */
54 #define CMDWIN	     0x100000L	/* allowed in cmdline window */
55 #define MODIFY       0x200000L	/* forbidden in non-'modifiable' buffer */
56 #define EXFLAGS      0x400000L	/* allow flags after count in argument */
57 #define FILES	(XFILE | EXTRA)	/* multiple extra files allowed */
58 #define WORD1	(EXTRA | NOSPC)	/* one extra word allowed */
59 #define FILE1	(FILES | NOSPC)	/* 1 file allowed, defaults to current file */
60 
61 /* values for cmd_addr_type */
62 #define ADDR_LINES		0
63 #define ADDR_WINDOWS		1
64 #define ADDR_ARGUMENTS		2
65 #define ADDR_LOADED_BUFFERS	3
66 #define ADDR_BUFFERS		4
67 #define ADDR_TABS		5
68 #define ADDR_QUICKFIX		6
69 
70 #ifndef DO_DECLARE_EXCMD
71 typedef struct exarg exarg_T;
72 #endif
73 
74 /*
75  * This array maps ex command names to command codes.
76  * The order in which command names are listed below is significant --
77  * ambiguous abbreviations are always resolved to be the first possible match
78  * (e.g. "r" is taken to mean "read", not "rewind", because "read" comes
79  * before "rewind").
80  * Not supported commands are included to avoid ambiguities.
81  */
82 #ifdef EX
83 # undef EX	    /* just in case */
84 #endif
85 #ifdef DO_DECLARE_EXCMD
86 # define EX(a, b, c, d, e)  {(char_u *)b, c, (long_u)(d), e}
87 
88 typedef void (*ex_func_T) (exarg_T *eap);
89 
90 static struct cmdname
91 {
92     char_u	*cmd_name;	/* name of the command */
93     ex_func_T   cmd_func;	/* function for this command */
94     long_u	cmd_argt;	/* flags declared above */
95     int		cmd_addr_type;	/* flag for address type */
96 } cmdnames[] =
97 #else
98 # define EX(a, b, c, d, e)  a
99 enum CMD_index
100 #endif
101 {
102 EX(CMD_append,		"append",	ex_append,
103 			BANG|RANGE|ZEROR|TRLBAR|CMDWIN|MODIFY,
104 			ADDR_LINES),
105 EX(CMD_abbreviate,	"abbreviate",	ex_abbreviate,
106 			EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
107 			ADDR_LINES),
108 EX(CMD_abclear,		"abclear",	ex_abclear,
109 			EXTRA|TRLBAR|CMDWIN,
110 			ADDR_LINES),
111 EX(CMD_aboveleft,	"aboveleft",	ex_wrongmodifier,
112 			NEEDARG|EXTRA|NOTRLCOM,
113 			ADDR_LINES),
114 EX(CMD_all,		"all",		ex_all,
115 			BANG|RANGE|NOTADR|COUNT|TRLBAR,
116 			ADDR_LINES),
117 EX(CMD_amenu,		"amenu",	ex_menu,
118 			RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
119 			ADDR_LINES),
120 EX(CMD_anoremenu,	"anoremenu",	ex_menu,
121 			RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
122 			ADDR_LINES),
123 EX(CMD_args,		"args",		ex_args,
124 			BANG|FILES|EDITCMD|ARGOPT|TRLBAR,
125 			ADDR_LINES),
126 EX(CMD_argadd,		"argadd",	ex_argadd,
127 			BANG|RANGE|NOTADR|ZEROR|FILES|TRLBAR,
128 			ADDR_ARGUMENTS),
129 EX(CMD_argdelete,	"argdelete",	ex_argdelete,
130 			BANG|RANGE|NOTADR|FILES|TRLBAR,
131 			ADDR_ARGUMENTS),
132 EX(CMD_argdo,		"argdo",	ex_listdo,
133 			BANG|NEEDARG|EXTRA|NOTRLCOM|RANGE|NOTADR|DFLALL,
134 			ADDR_ARGUMENTS),
135 EX(CMD_argedit,		"argedit",	ex_argedit,
136 			BANG|NEEDARG|RANGE|NOTADR|ZEROR|FILE1|EDITCMD|ARGOPT|TRLBAR,
137 			ADDR_ARGUMENTS),
138 EX(CMD_argglobal,	"argglobal",	ex_args,
139 			BANG|FILES|EDITCMD|ARGOPT|TRLBAR,
140 			ADDR_LINES),
141 EX(CMD_arglocal,	"arglocal",	ex_args,
142 			BANG|FILES|EDITCMD|ARGOPT|TRLBAR,
143 			ADDR_LINES),
144 EX(CMD_argument,	"argument",	ex_argument,
145 			BANG|RANGE|NOTADR|COUNT|EXTRA|EDITCMD|ARGOPT|TRLBAR,
146 			ADDR_ARGUMENTS),
147 EX(CMD_ascii,		"ascii",	do_ascii,
148 			TRLBAR|SBOXOK|CMDWIN,
149 			ADDR_LINES),
150 EX(CMD_autocmd,		"autocmd",	ex_autocmd,
151 			BANG|EXTRA|NOTRLCOM|USECTRLV|CMDWIN,
152 			ADDR_LINES),
153 EX(CMD_augroup,		"augroup",	ex_autocmd,
154 			BANG|WORD1|TRLBAR|CMDWIN,
155 			ADDR_LINES),
156 EX(CMD_aunmenu,		"aunmenu",	ex_menu,
157 			EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
158 			ADDR_LINES),
159 EX(CMD_buffer,		"buffer",	ex_buffer,
160 			BANG|RANGE|NOTADR|BUFNAME|BUFUNL|COUNT|EXTRA|EDITCMD|TRLBAR,
161 			ADDR_BUFFERS),
162 EX(CMD_bNext,		"bNext",	ex_bprevious,
163 			BANG|RANGE|NOTADR|COUNT|EDITCMD|TRLBAR,
164 			ADDR_LINES),
165 EX(CMD_ball,		"ball",		ex_buffer_all,
166 			RANGE|NOTADR|COUNT|TRLBAR,
167 			ADDR_LINES),
168 EX(CMD_badd,		"badd",		ex_edit,
169 			NEEDARG|FILE1|EDITCMD|TRLBAR|CMDWIN,
170 			ADDR_LINES),
171 EX(CMD_bdelete,		"bdelete",	ex_bunload,
172 			BANG|RANGE|NOTADR|BUFNAME|COUNT|EXTRA|TRLBAR,
173 			ADDR_BUFFERS),
174 EX(CMD_behave,		"behave",	ex_behave,
175 			NEEDARG|WORD1|TRLBAR|CMDWIN,
176 			ADDR_LINES),
177 EX(CMD_belowright,	"belowright",	ex_wrongmodifier,
178 			NEEDARG|EXTRA|NOTRLCOM,
179 			ADDR_LINES),
180 EX(CMD_bfirst,		"bfirst",	ex_brewind,
181 			BANG|RANGE|NOTADR|EDITCMD|TRLBAR,
182 			ADDR_LINES),
183 EX(CMD_blast,		"blast",	ex_blast,
184 			BANG|RANGE|NOTADR|EDITCMD|TRLBAR,
185 			ADDR_LINES),
186 EX(CMD_bmodified,	"bmodified",	ex_bmodified,
187 			BANG|RANGE|NOTADR|COUNT|EDITCMD|TRLBAR,
188 			ADDR_LINES),
189 EX(CMD_bnext,		"bnext",	ex_bnext,
190 			BANG|RANGE|NOTADR|COUNT|EDITCMD|TRLBAR,
191 			ADDR_LINES),
192 EX(CMD_botright,	"botright",	ex_wrongmodifier,
193 			NEEDARG|EXTRA|NOTRLCOM,
194 			ADDR_LINES),
195 EX(CMD_bprevious,	"bprevious",	ex_bprevious,
196 			BANG|RANGE|NOTADR|COUNT|EDITCMD|TRLBAR,
197 			ADDR_LINES),
198 EX(CMD_brewind,		"brewind",	ex_brewind,
199 			BANG|RANGE|NOTADR|EDITCMD|TRLBAR,
200 			ADDR_LINES),
201 EX(CMD_break,		"break",	ex_break,
202 			TRLBAR|SBOXOK|CMDWIN,
203 			ADDR_LINES),
204 EX(CMD_breakadd,	"breakadd",	ex_breakadd,
205 			EXTRA|TRLBAR|CMDWIN,
206 			ADDR_LINES),
207 EX(CMD_breakdel,	"breakdel",	ex_breakdel,
208 			EXTRA|TRLBAR|CMDWIN,
209 			ADDR_LINES),
210 EX(CMD_breaklist,	"breaklist",	ex_breaklist,
211 			EXTRA|TRLBAR|CMDWIN,
212 			ADDR_LINES),
213 EX(CMD_browse,		"browse",	ex_wrongmodifier,
214 			NEEDARG|EXTRA|NOTRLCOM|CMDWIN,
215 			ADDR_LINES),
216 EX(CMD_buffers,		"buffers",	buflist_list,
217 			BANG|EXTRA|TRLBAR|CMDWIN,
218 			ADDR_LINES),
219 EX(CMD_bufdo,		"bufdo",	ex_listdo,
220 			BANG|NEEDARG|EXTRA|NOTRLCOM|RANGE|NOTADR|DFLALL,
221 			ADDR_BUFFERS),
222 EX(CMD_bunload,		"bunload",	ex_bunload,
223 			BANG|RANGE|NOTADR|BUFNAME|COUNT|EXTRA|TRLBAR,
224 			ADDR_LOADED_BUFFERS),
225 EX(CMD_bwipeout,	"bwipeout",	ex_bunload,
226 			BANG|RANGE|NOTADR|BUFNAME|BUFUNL|COUNT|EXTRA|TRLBAR,
227 			ADDR_BUFFERS),
228 EX(CMD_change,		"change",	ex_change,
229 			BANG|WHOLEFOLD|RANGE|COUNT|TRLBAR|CMDWIN|MODIFY,
230 			ADDR_LINES),
231 EX(CMD_cNext,		"cNext",	ex_cnext,
232 			RANGE|NOTADR|COUNT|TRLBAR|BANG,
233 			ADDR_LINES),
234 EX(CMD_cNfile,		"cNfile",	ex_cnext,
235 			RANGE|NOTADR|COUNT|TRLBAR|BANG,
236 			ADDR_LINES),
237 EX(CMD_cabbrev,		"cabbrev",	ex_abbreviate,
238 			EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
239 			ADDR_LINES),
240 EX(CMD_cabclear,	"cabclear",	ex_abclear,
241 			EXTRA|TRLBAR|CMDWIN,
242 			ADDR_LINES),
243 EX(CMD_caddbuffer,	"caddbuffer",	ex_cbuffer,
244 			RANGE|NOTADR|WORD1|TRLBAR,
245 			ADDR_LINES),
246 EX(CMD_caddexpr,	"caddexpr",	ex_cexpr,
247 			NEEDARG|WORD1|NOTRLCOM|TRLBAR,
248 			ADDR_LINES),
249 EX(CMD_caddfile,	"caddfile",	ex_cfile,
250 			TRLBAR|FILE1,
251 			ADDR_LINES),
252 EX(CMD_call,		"call",		ex_call,
253 			RANGE|NEEDARG|EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
254 			ADDR_LINES),
255 EX(CMD_catch,		"catch",	ex_catch,
256 			EXTRA|SBOXOK|CMDWIN,
257 			ADDR_LINES),
258 EX(CMD_cbuffer,		"cbuffer",	ex_cbuffer,
259 			BANG|RANGE|NOTADR|WORD1|TRLBAR,
260 			ADDR_LINES),
261 EX(CMD_cc,		"cc",		ex_cc,
262 			RANGE|NOTADR|COUNT|TRLBAR|BANG,
263 			ADDR_LINES),
264 EX(CMD_cclose,		"cclose",	ex_cclose,
265 			RANGE|NOTADR|COUNT|TRLBAR,
266 			ADDR_LINES),
267 EX(CMD_cd,		"cd",		ex_cd,
268 			BANG|FILE1|TRLBAR|CMDWIN,
269 			ADDR_LINES),
270 EX(CMD_cdo,		"cdo",		ex_listdo,
271 			BANG|NEEDARG|EXTRA|NOTRLCOM|RANGE|NOTADR|DFLALL,
272 			ADDR_QUICKFIX),
273 EX(CMD_center,		"center",	ex_align,
274 			TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY,
275 			ADDR_LINES),
276 EX(CMD_cexpr,		"cexpr",	ex_cexpr,
277 			NEEDARG|WORD1|NOTRLCOM|TRLBAR|BANG,
278 			ADDR_LINES),
279 EX(CMD_cfile,		"cfile",	ex_cfile,
280 			TRLBAR|FILE1|BANG,
281 			ADDR_LINES),
282 EX(CMD_cfdo,		"cfdo",		ex_listdo,
283 			BANG|NEEDARG|EXTRA|NOTRLCOM|RANGE|NOTADR|DFLALL,
284 			ADDR_QUICKFIX),
285 EX(CMD_cfirst,		"cfirst",	ex_cc,
286 			RANGE|NOTADR|COUNT|TRLBAR|BANG,
287 			ADDR_LINES),
288 EX(CMD_cgetfile,	"cgetfile",	ex_cfile,
289 			TRLBAR|FILE1,
290 			ADDR_LINES),
291 EX(CMD_cgetbuffer,	"cgetbuffer",	ex_cbuffer,
292 			RANGE|NOTADR|WORD1|TRLBAR,
293 			ADDR_LINES),
294 EX(CMD_cgetexpr,	"cgetexpr",	ex_cexpr,
295 			NEEDARG|WORD1|NOTRLCOM|TRLBAR,
296 			ADDR_LINES),
297 EX(CMD_chdir,		"chdir",	ex_cd,
298 			BANG|FILE1|TRLBAR|CMDWIN,
299 			ADDR_LINES),
300 EX(CMD_changes,		"changes",	ex_changes,
301 			TRLBAR|CMDWIN,
302 			ADDR_LINES),
303 EX(CMD_checkpath,	"checkpath",	ex_checkpath,
304 			TRLBAR|BANG|CMDWIN,
305 			ADDR_LINES),
306 EX(CMD_checktime,	"checktime",	ex_checktime,
307 			RANGE|NOTADR|BUFNAME|COUNT|EXTRA|TRLBAR,
308 			ADDR_LINES),
309 EX(CMD_clist,		"clist",	qf_list,
310 			BANG|EXTRA|TRLBAR|CMDWIN,
311 			ADDR_LINES),
312 EX(CMD_clast,		"clast",	ex_cc,
313 			RANGE|NOTADR|COUNT|TRLBAR|BANG,
314 			ADDR_LINES),
315 EX(CMD_close,		"close",	ex_close,
316 			BANG|RANGE|NOTADR|COUNT|TRLBAR|CMDWIN,
317 			ADDR_WINDOWS),
318 EX(CMD_cmap,		"cmap",		ex_map,
319 			EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
320 			ADDR_LINES),
321 EX(CMD_cmapclear,	"cmapclear",	ex_mapclear,
322 			EXTRA|TRLBAR|CMDWIN,
323 			ADDR_LINES),
324 EX(CMD_cmenu,		"cmenu",	ex_menu,
325 			RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
326 			ADDR_LINES),
327 EX(CMD_cnext,		"cnext",	ex_cnext,
328 			RANGE|NOTADR|COUNT|TRLBAR|BANG,
329 			ADDR_LINES),
330 EX(CMD_cnewer,		"cnewer",	qf_age,
331 			RANGE|NOTADR|COUNT|TRLBAR,
332 			ADDR_LINES),
333 EX(CMD_cnfile,		"cnfile",	ex_cnext,
334 			RANGE|NOTADR|COUNT|TRLBAR|BANG,
335 			ADDR_LINES),
336 EX(CMD_cnoremap,	"cnoremap",	ex_map,
337 			EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
338 			ADDR_LINES),
339 EX(CMD_cnoreabbrev,	"cnoreabbrev",	ex_abbreviate,
340 			EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
341 			ADDR_LINES),
342 EX(CMD_cnoremenu,	"cnoremenu",	ex_menu,
343 			RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
344 			ADDR_LINES),
345 EX(CMD_copy,		"copy",		ex_copymove,
346 			RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY,
347 			ADDR_LINES),
348 EX(CMD_colder,		"colder",	qf_age,
349 			RANGE|NOTADR|COUNT|TRLBAR,
350 			ADDR_LINES),
351 EX(CMD_colorscheme,	"colorscheme",	ex_colorscheme,
352 			WORD1|TRLBAR|CMDWIN,
353 			ADDR_LINES),
354 EX(CMD_command,		"command",	ex_command,
355 			EXTRA|BANG|NOTRLCOM|USECTRLV|CMDWIN,
356 			ADDR_LINES),
357 EX(CMD_comclear,	"comclear",	ex_comclear,
358 			TRLBAR|CMDWIN,
359 			ADDR_LINES),
360 EX(CMD_compiler,	"compiler",	ex_compiler,
361 			BANG|TRLBAR|WORD1|CMDWIN,
362 			ADDR_LINES),
363 EX(CMD_continue,	"continue",	ex_continue,
364 			TRLBAR|SBOXOK|CMDWIN,
365 			ADDR_LINES),
366 EX(CMD_confirm,		"confirm",	ex_wrongmodifier,
367 			NEEDARG|EXTRA|NOTRLCOM|CMDWIN,
368 			ADDR_LINES),
369 EX(CMD_copen,		"copen",	ex_copen,
370 			RANGE|NOTADR|COUNT|TRLBAR,
371 			ADDR_LINES),
372 EX(CMD_cprevious,	"cprevious",	ex_cnext,
373 			RANGE|NOTADR|COUNT|TRLBAR|BANG,
374 			ADDR_LINES),
375 EX(CMD_cpfile,		"cpfile",	ex_cnext,
376 			RANGE|NOTADR|COUNT|TRLBAR|BANG,
377 			ADDR_LINES),
378 EX(CMD_cquit,		"cquit",	ex_cquit,
379 			TRLBAR|BANG,
380 			ADDR_LINES),
381 EX(CMD_crewind,		"crewind",	ex_cc,
382 			RANGE|NOTADR|COUNT|TRLBAR|BANG,
383 			ADDR_LINES),
384 EX(CMD_cscope,		"cscope",	do_cscope,
385 			EXTRA|NOTRLCOM|XFILE,
386 			ADDR_LINES),
387 EX(CMD_cstag,		"cstag",	do_cstag,
388 			BANG|TRLBAR|WORD1,
389 			ADDR_LINES),
390 EX(CMD_cunmap,		"cunmap",	ex_unmap,
391 			EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
392 			ADDR_LINES),
393 EX(CMD_cunabbrev,	"cunabbrev",	ex_abbreviate,
394 			EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
395 			ADDR_LINES),
396 EX(CMD_cunmenu,		"cunmenu",	ex_menu,
397 			EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
398 			ADDR_LINES),
399 EX(CMD_cwindow,		"cwindow",	ex_cwindow,
400 			RANGE|NOTADR|COUNT|TRLBAR,
401 			ADDR_LINES),
402 EX(CMD_delete,		"delete",	ex_operators,
403 			RANGE|WHOLEFOLD|REGSTR|COUNT|TRLBAR|CMDWIN|MODIFY,
404 			ADDR_LINES),
405 EX(CMD_delmarks,	"delmarks",	ex_delmarks,
406 			BANG|EXTRA|TRLBAR|CMDWIN,
407 			ADDR_LINES),
408 EX(CMD_debug,		"debug",	ex_debug,
409 			NEEDARG|EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
410 			ADDR_LINES),
411 EX(CMD_debuggreedy,	"debuggreedy",	ex_debuggreedy,
412 			RANGE|NOTADR|ZEROR|TRLBAR|CMDWIN,
413 			ADDR_LINES),
414 EX(CMD_delcommand,	"delcommand",	ex_delcommand,
415 			NEEDARG|WORD1|TRLBAR|CMDWIN,
416 			ADDR_LINES),
417 EX(CMD_delfunction,	"delfunction",	ex_delfunction,
418 			NEEDARG|WORD1|CMDWIN,
419 			ADDR_LINES),
420 EX(CMD_display,		"display",	ex_display,
421 			EXTRA|NOTRLCOM|TRLBAR|SBOXOK|CMDWIN,
422 			ADDR_LINES),
423 EX(CMD_diffupdate,	"diffupdate",	ex_diffupdate,
424 			BANG|TRLBAR,
425 			ADDR_LINES),
426 EX(CMD_diffget,		"diffget",	ex_diffgetput,
427 			RANGE|EXTRA|TRLBAR|MODIFY,
428 			ADDR_LINES),
429 EX(CMD_diffoff,		"diffoff",	ex_diffoff,
430 			BANG|TRLBAR,
431 			ADDR_LINES),
432 EX(CMD_diffpatch,	"diffpatch",	ex_diffpatch,
433 			EXTRA|FILE1|TRLBAR|MODIFY,
434 			ADDR_LINES),
435 EX(CMD_diffput,		"diffput",	ex_diffgetput,
436 			RANGE|EXTRA|TRLBAR,
437 			ADDR_LINES),
438 EX(CMD_diffsplit,	"diffsplit",	ex_diffsplit,
439 			EXTRA|FILE1|TRLBAR,
440 			ADDR_LINES),
441 EX(CMD_diffthis,	"diffthis",	ex_diffthis,
442 			TRLBAR,
443 			ADDR_LINES),
444 EX(CMD_digraphs,	"digraphs",	ex_digraphs,
445 			EXTRA|TRLBAR|CMDWIN,
446 			ADDR_LINES),
447 EX(CMD_djump,		"djump",	ex_findpat,
448 			BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA,
449 			ADDR_LINES),
450 EX(CMD_dlist,		"dlist",	ex_findpat,
451 			BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA|CMDWIN,
452 			ADDR_LINES),
453 EX(CMD_doautocmd,	"doautocmd",	ex_doautocmd,
454 			EXTRA|TRLBAR|CMDWIN,
455 			ADDR_LINES),
456 EX(CMD_doautoall,	"doautoall",	ex_doautoall,
457 			EXTRA|TRLBAR|CMDWIN,
458 			ADDR_LINES),
459 EX(CMD_drop,		"drop",		ex_drop,
460 			FILES|EDITCMD|NEEDARG|ARGOPT|TRLBAR,
461 			ADDR_LINES),
462 EX(CMD_dsearch,		"dsearch",	ex_findpat,
463 			BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA|CMDWIN,
464 			ADDR_LINES),
465 EX(CMD_dsplit,		"dsplit",	ex_findpat,
466 			BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA,
467 			ADDR_LINES),
468 EX(CMD_edit,		"edit",		ex_edit,
469 			BANG|FILE1|EDITCMD|ARGOPT|TRLBAR,
470 			ADDR_LINES),
471 EX(CMD_earlier,		"earlier",	ex_later,
472 			TRLBAR|EXTRA|NOSPC|CMDWIN,
473 			ADDR_LINES),
474 EX(CMD_echo,		"echo",		ex_echo,
475 			EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
476 			ADDR_LINES),
477 EX(CMD_echoerr,		"echoerr",	ex_execute,
478 			EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
479 			ADDR_LINES),
480 EX(CMD_echohl,		"echohl",	ex_echohl,
481 			EXTRA|TRLBAR|SBOXOK|CMDWIN,
482 			ADDR_LINES),
483 EX(CMD_echomsg,		"echomsg",	ex_execute,
484 			EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
485 			ADDR_LINES),
486 EX(CMD_echon,		"echon",	ex_echo,
487 			EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
488 			ADDR_LINES),
489 EX(CMD_else,		"else",		ex_else,
490 			TRLBAR|SBOXOK|CMDWIN,
491 			ADDR_LINES),
492 EX(CMD_elseif,		"elseif",	ex_else,
493 			EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
494 			ADDR_LINES),
495 EX(CMD_emenu,		"emenu",	ex_emenu,
496 			NEEDARG|EXTRA|TRLBAR|NOTRLCOM|RANGE|NOTADR|CMDWIN,
497 			ADDR_LINES),
498 EX(CMD_endif,		"endif",	ex_endif,
499 			TRLBAR|SBOXOK|CMDWIN,
500 			ADDR_LINES),
501 EX(CMD_endfunction,	"endfunction",	ex_endfunction,
502 			TRLBAR|CMDWIN,
503 			ADDR_LINES),
504 EX(CMD_endfor,		"endfor",	ex_endwhile,
505 			TRLBAR|SBOXOK|CMDWIN,
506 			ADDR_LINES),
507 EX(CMD_endtry,		"endtry",	ex_endtry,
508 			TRLBAR|SBOXOK|CMDWIN,
509 			ADDR_LINES),
510 EX(CMD_endwhile,	"endwhile",	ex_endwhile,
511 			TRLBAR|SBOXOK|CMDWIN,
512 			ADDR_LINES),
513 EX(CMD_enew,		"enew",		ex_edit,
514 			BANG|TRLBAR,
515 			ADDR_LINES),
516 EX(CMD_ex,		"ex",		ex_edit,
517 			BANG|FILE1|EDITCMD|ARGOPT|TRLBAR,
518 			ADDR_LINES),
519 EX(CMD_execute,		"execute",	ex_execute,
520 			EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
521 			ADDR_LINES),
522 EX(CMD_exit,		"exit",		ex_exit,
523 			RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR|CMDWIN,
524 			ADDR_LINES),
525 EX(CMD_exusage,		"exusage",	ex_exusage,
526 			TRLBAR,
527 			ADDR_LINES),
528 EX(CMD_file,		"file",		ex_file,
529 			RANGE|NOTADR|ZEROR|BANG|FILE1|TRLBAR,
530 			ADDR_LINES),
531 EX(CMD_files,		"files",	buflist_list,
532 			BANG|EXTRA|TRLBAR|CMDWIN,
533 			ADDR_LINES),
534 EX(CMD_filetype,	"filetype",	ex_filetype,
535 			EXTRA|TRLBAR|CMDWIN,
536 			ADDR_LINES),
537 EX(CMD_find,		"find",		ex_find,
538 			RANGE|NOTADR|BANG|FILE1|EDITCMD|ARGOPT|TRLBAR,
539 			ADDR_LINES),
540 EX(CMD_finally,		"finally",	ex_finally,
541 			TRLBAR|SBOXOK|CMDWIN,
542 			ADDR_LINES),
543 EX(CMD_finish,		"finish",	ex_finish,
544 			TRLBAR|SBOXOK|CMDWIN,
545 			ADDR_LINES),
546 EX(CMD_first,		"first",	ex_rewind,
547 			EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR,
548 			ADDR_LINES),
549 EX(CMD_fixdel,		"fixdel",	do_fixdel,
550 			TRLBAR|CMDWIN,
551 			ADDR_LINES),
552 EX(CMD_fold,		"fold",		ex_fold,
553 			RANGE|WHOLEFOLD|TRLBAR|SBOXOK|CMDWIN,
554 			ADDR_LINES),
555 EX(CMD_foldclose,	"foldclose",	ex_foldopen,
556 			RANGE|BANG|WHOLEFOLD|TRLBAR|SBOXOK|CMDWIN,
557 			ADDR_LINES),
558 EX(CMD_folddoopen,	"folddoopen",	ex_folddo,
559 			RANGE|DFLALL|NEEDARG|EXTRA|NOTRLCOM,
560 			ADDR_LINES),
561 EX(CMD_folddoclosed,	"folddoclosed",	ex_folddo,
562 			RANGE|DFLALL|NEEDARG|EXTRA|NOTRLCOM,
563 			ADDR_LINES),
564 EX(CMD_foldopen,	"foldopen",	ex_foldopen,
565 			RANGE|BANG|WHOLEFOLD|TRLBAR|SBOXOK|CMDWIN,
566 			ADDR_LINES),
567 EX(CMD_for,		"for",		ex_while,
568 			EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
569 			ADDR_LINES),
570 EX(CMD_function,	"function",	ex_function,
571 			EXTRA|BANG|CMDWIN,
572 			ADDR_LINES),
573 EX(CMD_global,		"global",	ex_global,
574 			RANGE|WHOLEFOLD|BANG|EXTRA|DFLALL|SBOXOK|CMDWIN,
575 			ADDR_LINES),
576 EX(CMD_goto,		"goto",		ex_goto,
577 			RANGE|NOTADR|COUNT|TRLBAR|SBOXOK|CMDWIN,
578 			ADDR_LINES),
579 EX(CMD_grep,		"grep",		ex_make,
580 			RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
581 			ADDR_LINES),
582 EX(CMD_grepadd,		"grepadd",	ex_make,
583 			RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
584 			ADDR_LINES),
585 EX(CMD_gui,		"gui",		ex_gui,
586 			BANG|FILES|EDITCMD|ARGOPT|TRLBAR|CMDWIN,
587 			ADDR_LINES),
588 EX(CMD_gvim,		"gvim",		ex_gui,
589 			BANG|FILES|EDITCMD|ARGOPT|TRLBAR|CMDWIN,
590 			ADDR_LINES),
591 EX(CMD_help,		"help",		ex_help,
592 			BANG|EXTRA|NOTRLCOM,
593 			ADDR_LINES),
594 EX(CMD_helpclose,	"helpclose",	ex_helpclose,
595 			RANGE|NOTADR|COUNT|TRLBAR,
596 			ADDR_LINES),
597 EX(CMD_helpfind,	"helpfind",	ex_helpfind,
598 			EXTRA|NOTRLCOM,
599 			ADDR_LINES),
600 EX(CMD_helpgrep,	"helpgrep",	ex_helpgrep,
601 			EXTRA|NOTRLCOM|NEEDARG,
602 			ADDR_LINES),
603 EX(CMD_helptags,	"helptags",	ex_helptags,
604 			NEEDARG|FILES|TRLBAR|CMDWIN,
605 			ADDR_LINES),
606 EX(CMD_hardcopy,	"hardcopy",	ex_hardcopy,
607 			RANGE|COUNT|EXTRA|TRLBAR|DFLALL|BANG,
608 			ADDR_LINES),
609 EX(CMD_highlight,	"highlight",	ex_highlight,
610 			BANG|EXTRA|TRLBAR|SBOXOK|CMDWIN,
611 			ADDR_LINES),
612 EX(CMD_hide,		"hide",		ex_hide,
613 			BANG|RANGE|NOTADR|COUNT|EXTRA|NOTRLCOM,
614 			ADDR_WINDOWS),
615 EX(CMD_history,		"history",	ex_history,
616 			EXTRA|TRLBAR|CMDWIN,
617 			ADDR_LINES),
618 EX(CMD_insert,		"insert",	ex_append,
619 			BANG|RANGE|TRLBAR|CMDWIN|MODIFY,
620 			ADDR_LINES),
621 EX(CMD_iabbrev,		"iabbrev",	ex_abbreviate,
622 			EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
623 			ADDR_LINES),
624 EX(CMD_iabclear,	"iabclear",	ex_abclear,
625 			EXTRA|TRLBAR|CMDWIN,
626 			ADDR_LINES),
627 EX(CMD_if,		"if",		ex_if,
628 			EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
629 			ADDR_LINES),
630 EX(CMD_ijump,		"ijump",	ex_findpat,
631 			BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA,
632 			ADDR_LINES),
633 EX(CMD_ilist,		"ilist",	ex_findpat,
634 			BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA|CMDWIN,
635 			ADDR_LINES),
636 EX(CMD_imap,		"imap",		ex_map,
637 			EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
638 			ADDR_LINES),
639 EX(CMD_imapclear,	"imapclear",	ex_mapclear,
640 			EXTRA|TRLBAR|CMDWIN,
641 			ADDR_LINES),
642 EX(CMD_imenu,		"imenu",	ex_menu,
643 			RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
644 			ADDR_LINES),
645 EX(CMD_inoremap,	"inoremap",	ex_map,
646 			EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
647 			ADDR_LINES),
648 EX(CMD_inoreabbrev,	"inoreabbrev",	ex_abbreviate,
649 			EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
650 			ADDR_LINES),
651 EX(CMD_inoremenu,	"inoremenu",	ex_menu,
652 			RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
653 			ADDR_LINES),
654 EX(CMD_intro,		"intro",	ex_intro,
655 			TRLBAR|CMDWIN,
656 			ADDR_LINES),
657 EX(CMD_isearch,		"isearch",	ex_findpat,
658 			BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA|CMDWIN,
659 			ADDR_LINES),
660 EX(CMD_isplit,		"isplit",	ex_findpat,
661 			BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA,
662 			ADDR_LINES),
663 EX(CMD_iunmap,		"iunmap",	ex_unmap,
664 			EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
665 			ADDR_LINES),
666 EX(CMD_iunabbrev,	"iunabbrev",	ex_abbreviate,
667 			EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
668 			ADDR_LINES),
669 EX(CMD_iunmenu,		"iunmenu",	ex_menu,
670 			EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
671 			ADDR_LINES),
672 EX(CMD_join,		"join",		ex_join,
673 			BANG|RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|MODIFY,
674 			ADDR_LINES),
675 EX(CMD_jumps,		"jumps",	ex_jumps,
676 			TRLBAR|CMDWIN,
677 			ADDR_LINES),
678 EX(CMD_k,		"k",		ex_mark,
679 			RANGE|WORD1|TRLBAR|SBOXOK|CMDWIN,
680 			ADDR_LINES),
681 EX(CMD_keepmarks,	"keepmarks",	ex_wrongmodifier,
682 			NEEDARG|EXTRA|NOTRLCOM,
683 			ADDR_LINES),
684 EX(CMD_keepjumps,	"keepjumps",	ex_wrongmodifier,
685 			NEEDARG|EXTRA|NOTRLCOM,
686 			ADDR_LINES),
687 EX(CMD_keeppatterns,	"keeppatterns",	ex_wrongmodifier,
688 			NEEDARG|EXTRA|NOTRLCOM,
689 			ADDR_LINES),
690 EX(CMD_keepalt,		"keepalt",	ex_wrongmodifier,
691 			NEEDARG|EXTRA|NOTRLCOM,
692 			ADDR_LINES),
693 EX(CMD_list,		"list",		ex_print,
694 			RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN,
695 			ADDR_LINES),
696 EX(CMD_lNext,		"lNext",	ex_cnext,
697 			RANGE|NOTADR|COUNT|TRLBAR|BANG,
698 			ADDR_LINES),
699 EX(CMD_lNfile,		"lNfile",	ex_cnext,
700 			RANGE|NOTADR|COUNT|TRLBAR|BANG,
701 			ADDR_LINES),
702 EX(CMD_last,		"last",		ex_last,
703 			EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR,
704 			ADDR_LINES),
705 EX(CMD_language,	"language",	ex_language,
706 			EXTRA|TRLBAR|CMDWIN,
707 			ADDR_LINES),
708 EX(CMD_laddexpr,	"laddexpr",	ex_cexpr,
709 			NEEDARG|WORD1|NOTRLCOM|TRLBAR,
710 			ADDR_LINES),
711 EX(CMD_laddbuffer,	"laddbuffer",	ex_cbuffer,
712 			RANGE|NOTADR|WORD1|TRLBAR,
713 			ADDR_LINES),
714 EX(CMD_laddfile,	"laddfile",	ex_cfile,
715 			TRLBAR|FILE1,
716 			ADDR_LINES),
717 EX(CMD_later,		"later",	ex_later,
718 			TRLBAR|EXTRA|NOSPC|CMDWIN,
719 			ADDR_LINES),
720 EX(CMD_lbuffer,		"lbuffer",	ex_cbuffer,
721 			BANG|RANGE|NOTADR|WORD1|TRLBAR,
722 			ADDR_LINES),
723 EX(CMD_lcd,		"lcd",		ex_cd,
724 			BANG|FILE1|TRLBAR|CMDWIN,
725 			ADDR_LINES),
726 EX(CMD_lchdir,		"lchdir",	ex_cd,
727 			BANG|FILE1|TRLBAR|CMDWIN,
728 			ADDR_LINES),
729 EX(CMD_lclose,		"lclose",	ex_cclose,
730 			RANGE|NOTADR|COUNT|TRLBAR,
731 			ADDR_LINES),
732 EX(CMD_lcscope,		"lcscope",	do_cscope,
733 			EXTRA|NOTRLCOM|XFILE,
734 			ADDR_LINES),
735 EX(CMD_ldo,		"ldo",		ex_listdo,
736 			BANG|NEEDARG|EXTRA|NOTRLCOM|RANGE|NOTADR|DFLALL,
737 			ADDR_QUICKFIX),
738 EX(CMD_left,		"left",		ex_align,
739 			TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY,
740 			ADDR_LINES),
741 EX(CMD_leftabove,	"leftabove",	ex_wrongmodifier,
742 			NEEDARG|EXTRA|NOTRLCOM,
743 			ADDR_LINES),
744 EX(CMD_let,		"let",		ex_let,
745 			EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
746 			ADDR_LINES),
747 EX(CMD_lexpr,		"lexpr",	ex_cexpr,
748 			NEEDARG|WORD1|NOTRLCOM|TRLBAR|BANG,
749 			ADDR_LINES),
750 EX(CMD_lfile,		"lfile",	ex_cfile,
751 			TRLBAR|FILE1|BANG,
752 			ADDR_LINES),
753 EX(CMD_lfdo,		"lfdo",		ex_listdo,
754 			BANG|NEEDARG|EXTRA|NOTRLCOM|RANGE|NOTADR|DFLALL,
755 			ADDR_QUICKFIX),
756 EX(CMD_lfirst,		"lfirst",	ex_cc,
757 			RANGE|NOTADR|COUNT|TRLBAR|BANG,
758 			ADDR_LINES),
759 EX(CMD_lgetfile,	"lgetfile",	ex_cfile,
760 			TRLBAR|FILE1,
761 			ADDR_LINES),
762 EX(CMD_lgetbuffer,	"lgetbuffer",	ex_cbuffer,
763 			RANGE|NOTADR|WORD1|TRLBAR,
764 			ADDR_LINES),
765 EX(CMD_lgetexpr,	"lgetexpr",	ex_cexpr,
766 			NEEDARG|WORD1|NOTRLCOM|TRLBAR,
767 			ADDR_LINES),
768 EX(CMD_lgrep,		"lgrep",	ex_make,
769 			RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
770 			ADDR_LINES),
771 EX(CMD_lgrepadd,	"lgrepadd",	ex_make,
772 			RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
773 			ADDR_LINES),
774 EX(CMD_lhelpgrep,	"lhelpgrep",	ex_helpgrep,
775 			EXTRA|NOTRLCOM|NEEDARG,
776 			ADDR_LINES),
777 EX(CMD_ll,		"ll",		ex_cc,
778 			RANGE|NOTADR|COUNT|TRLBAR|BANG,
779 			ADDR_LINES),
780 EX(CMD_llast,		"llast",	ex_cc,
781 			RANGE|NOTADR|COUNT|TRLBAR|BANG,
782 			ADDR_LINES),
783 EX(CMD_llist,		"llist",	qf_list,
784 			BANG|EXTRA|TRLBAR|CMDWIN,
785 			ADDR_LINES),
786 EX(CMD_lmap,		"lmap",		ex_map,
787 			EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
788 			ADDR_LINES),
789 EX(CMD_lmapclear,	"lmapclear",	ex_mapclear,
790 			EXTRA|TRLBAR|CMDWIN,
791 			ADDR_LINES),
792 EX(CMD_lmake,		"lmake",	ex_make,
793 			BANG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
794 			ADDR_LINES),
795 EX(CMD_lnoremap,	"lnoremap",	ex_map,
796 			EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
797 			ADDR_LINES),
798 EX(CMD_lnext,		"lnext",	ex_cnext,
799 			RANGE|NOTADR|COUNT|TRLBAR|BANG,
800 			ADDR_LINES),
801 EX(CMD_lnewer,		"lnewer",	qf_age,
802 			RANGE|NOTADR|COUNT|TRLBAR,
803 			ADDR_LINES),
804 EX(CMD_lnfile,		"lnfile",	ex_cnext,
805 			RANGE|NOTADR|COUNT|TRLBAR|BANG,
806 			ADDR_LINES),
807 EX(CMD_loadview,	"loadview",	ex_loadview,
808 			FILE1|TRLBAR,
809 			ADDR_LINES),
810 EX(CMD_loadkeymap,	"loadkeymap",	ex_loadkeymap,
811 			CMDWIN,
812 			ADDR_LINES),
813 EX(CMD_lockmarks,	"lockmarks",	ex_wrongmodifier,
814 			NEEDARG|EXTRA|NOTRLCOM,
815 			ADDR_LINES),
816 EX(CMD_lockvar,		"lockvar",	ex_lockvar,
817 			BANG|EXTRA|NEEDARG|SBOXOK|CMDWIN,
818 			ADDR_LINES),
819 EX(CMD_lolder,		"lolder",	qf_age,
820 			RANGE|NOTADR|COUNT|TRLBAR,
821 			ADDR_LINES),
822 EX(CMD_lopen,		"lopen",	ex_copen,
823 			RANGE|NOTADR|COUNT|TRLBAR,
824 			ADDR_LINES),
825 EX(CMD_lprevious,	"lprevious",	ex_cnext,
826 			RANGE|NOTADR|COUNT|TRLBAR|BANG,
827 			ADDR_LINES),
828 EX(CMD_lpfile,		"lpfile",	ex_cnext,
829 			RANGE|NOTADR|COUNT|TRLBAR|BANG,
830 			ADDR_LINES),
831 EX(CMD_lrewind,		"lrewind",	ex_cc,
832 			RANGE|NOTADR|COUNT|TRLBAR|BANG,
833 			ADDR_LINES),
834 EX(CMD_ltag,		"ltag",	ex_tag,
835 			NOTADR|TRLBAR|BANG|WORD1,
836 			ADDR_LINES),
837 EX(CMD_lunmap,		"lunmap",	ex_unmap,
838 			EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
839 			ADDR_LINES),
840 EX(CMD_lua,		"lua",		ex_lua,
841 			RANGE|EXTRA|NEEDARG|CMDWIN,
842 			ADDR_LINES),
843 EX(CMD_luado,		"luado",	ex_luado,
844 			RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN,
845 			ADDR_LINES),
846 EX(CMD_luafile,		"luafile",	ex_luafile,
847 			RANGE|FILE1|NEEDARG|CMDWIN,
848 			ADDR_LINES),
849 EX(CMD_lvimgrep,	"lvimgrep",	ex_vimgrep,
850 			RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
851 			ADDR_LINES),
852 EX(CMD_lvimgrepadd,	"lvimgrepadd",	ex_vimgrep,
853 			RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
854 			ADDR_LINES),
855 EX(CMD_lwindow,		"lwindow",	ex_cwindow,
856 			RANGE|NOTADR|COUNT|TRLBAR,
857 			ADDR_LINES),
858 EX(CMD_ls,		"ls",		buflist_list,
859 			BANG|EXTRA|TRLBAR|CMDWIN,
860 			ADDR_LINES),
861 EX(CMD_move,		"move",		ex_copymove,
862 			RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY,
863 			ADDR_LINES),
864 EX(CMD_mark,		"mark",		ex_mark,
865 			RANGE|WORD1|TRLBAR|SBOXOK|CMDWIN,
866 			ADDR_LINES),
867 EX(CMD_make,		"make",		ex_make,
868 			BANG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
869 			ADDR_LINES),
870 EX(CMD_map,		"map",		ex_map,
871 			BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
872 			ADDR_LINES),
873 EX(CMD_mapclear,	"mapclear",	ex_mapclear,
874 			EXTRA|BANG|TRLBAR|CMDWIN,
875 			ADDR_LINES),
876 EX(CMD_marks,		"marks",	do_marks,
877 			EXTRA|TRLBAR|CMDWIN,
878 			ADDR_LINES),
879 EX(CMD_match,		"match",	ex_match,
880 			RANGE|NOTADR|EXTRA|CMDWIN,
881 			ADDR_LINES),
882 EX(CMD_menu,		"menu",		ex_menu,
883 			RANGE|NOTADR|ZEROR|BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
884 			ADDR_LINES),
885 EX(CMD_menutranslate,	"menutranslate", ex_menutranslate,
886 			EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
887 			ADDR_LINES),
888 EX(CMD_messages,	"messages",	ex_messages,
889 			TRLBAR|CMDWIN,
890 			ADDR_LINES),
891 EX(CMD_mkexrc,		"mkexrc",	ex_mkrc,
892 			BANG|FILE1|TRLBAR|CMDWIN,
893 			ADDR_LINES),
894 EX(CMD_mksession,	"mksession",	ex_mkrc,
895 			BANG|FILE1|TRLBAR,
896 			ADDR_LINES),
897 EX(CMD_mkspell,		"mkspell",	ex_mkspell,
898 			BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
899 			ADDR_LINES),
900 EX(CMD_mkvimrc,		"mkvimrc",	ex_mkrc,
901 			BANG|FILE1|TRLBAR|CMDWIN,
902 			ADDR_LINES),
903 EX(CMD_mkview,		"mkview",	ex_mkrc,
904 			BANG|FILE1|TRLBAR,
905 			ADDR_LINES),
906 EX(CMD_mode,		"mode",		ex_mode,
907 			WORD1|TRLBAR|CMDWIN,
908 			ADDR_LINES),
909 EX(CMD_mzscheme,	"mzscheme",	ex_mzscheme,
910 			RANGE|EXTRA|DFLALL|NEEDARG|CMDWIN|SBOXOK,
911 			ADDR_LINES),
912 EX(CMD_mzfile,		"mzfile",	ex_mzfile,
913 			RANGE|FILE1|NEEDARG|CMDWIN,
914 			ADDR_LINES),
915 EX(CMD_next,		"next",		ex_next,
916 			RANGE|NOTADR|BANG|FILES|EDITCMD|ARGOPT|TRLBAR,
917 			ADDR_LINES),
918 EX(CMD_nbkey,		"nbkey",	ex_nbkey,
919 			EXTRA|NOTADR|NEEDARG,
920 			ADDR_LINES),
921 EX(CMD_nbclose,		"nbclose",	ex_nbclose,
922 			TRLBAR|CMDWIN,
923 			ADDR_LINES),
924 EX(CMD_nbstart,		"nbstart",	ex_nbstart,
925 			WORD1|TRLBAR|CMDWIN,
926 			ADDR_LINES),
927 EX(CMD_new,		"new",		ex_splitview,
928 			BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR,
929 			ADDR_LINES),
930 EX(CMD_nmap,		"nmap",		ex_map,
931 			EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
932 			ADDR_LINES),
933 EX(CMD_nmapclear,	"nmapclear",	ex_mapclear,
934 			EXTRA|TRLBAR|CMDWIN,
935 			ADDR_LINES),
936 EX(CMD_nmenu,		"nmenu",	ex_menu,
937 			RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
938 			ADDR_LINES),
939 EX(CMD_nnoremap,	"nnoremap",	ex_map,
940 			EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
941 			ADDR_LINES),
942 EX(CMD_nnoremenu,	"nnoremenu",	ex_menu,
943 			RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
944 			ADDR_LINES),
945 EX(CMD_noremap,		"noremap",	ex_map,
946 			BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
947 			ADDR_LINES),
948 EX(CMD_noautocmd,	"noautocmd",	ex_wrongmodifier,
949 			NEEDARG|EXTRA|NOTRLCOM,
950 			ADDR_LINES),
951 EX(CMD_nohlsearch,	"nohlsearch",	ex_nohlsearch,
952 			TRLBAR|SBOXOK|CMDWIN,
953 			ADDR_LINES),
954 EX(CMD_noreabbrev,	"noreabbrev",	ex_abbreviate,
955 			EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
956 			ADDR_LINES),
957 EX(CMD_noremenu,	"noremenu",	ex_menu,
958 			RANGE|NOTADR|ZEROR|BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
959 			ADDR_LINES),
960 EX(CMD_noswapfile,	"noswapfile",	ex_wrongmodifier,
961 			NEEDARG|EXTRA|NOTRLCOM,
962 			ADDR_LINES),
963 EX(CMD_normal,		"normal",	ex_normal,
964 			RANGE|BANG|EXTRA|NEEDARG|NOTRLCOM|USECTRLV|SBOXOK|CMDWIN,
965 			ADDR_LINES),
966 EX(CMD_number,		"number",	ex_print,
967 			RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN,
968 			ADDR_LINES),
969 EX(CMD_nunmap,		"nunmap",	ex_unmap,
970 			EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
971 			ADDR_LINES),
972 EX(CMD_nunmenu,		"nunmenu",	ex_menu,
973 			EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
974 			ADDR_LINES),
975 EX(CMD_open,		"open",		ex_open,
976 			RANGE|BANG|EXTRA,
977 			ADDR_LINES),
978 EX(CMD_oldfiles,	"oldfiles",	ex_oldfiles,
979 			BANG|TRLBAR|SBOXOK|CMDWIN,
980 			ADDR_LINES),
981 EX(CMD_omap,		"omap",		ex_map,
982 			EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
983 			ADDR_LINES),
984 EX(CMD_omapclear,	"omapclear",	ex_mapclear,
985 			EXTRA|TRLBAR|CMDWIN,
986 			ADDR_LINES),
987 EX(CMD_omenu,		"omenu",	ex_menu,
988 			RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
989 			ADDR_LINES),
990 EX(CMD_only,		"only",		ex_only,
991 			BANG|NOTADR|RANGE|COUNT|TRLBAR,
992 			ADDR_WINDOWS),
993 EX(CMD_onoremap,	"onoremap",	ex_map,
994 			EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
995 			ADDR_LINES),
996 EX(CMD_onoremenu,	"onoremenu",	ex_menu,
997 			RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
998 			ADDR_LINES),
999 EX(CMD_options,		"options",	ex_options,
1000 			TRLBAR,
1001 			ADDR_LINES),
1002 EX(CMD_ounmap,		"ounmap",	ex_unmap,
1003 			EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
1004 			ADDR_LINES),
1005 EX(CMD_ounmenu,		"ounmenu",	ex_menu,
1006 			EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
1007 			ADDR_LINES),
1008 EX(CMD_ownsyntax,	"ownsyntax",	ex_ownsyntax,
1009 			EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
1010 			ADDR_LINES),
1011 EX(CMD_print,		"print",	ex_print,
1012 			RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|SBOXOK,
1013 			ADDR_LINES),
1014 EX(CMD_packadd,		"packadd",	ex_packadd,
1015 			BANG|FILE1|NEEDARG|TRLBAR|SBOXOK|CMDWIN,
1016 			ADDR_LINES),
1017 EX(CMD_packloadall,	"packloadall",	ex_packloadall,
1018 			BANG|TRLBAR|SBOXOK|CMDWIN,
1019 			ADDR_LINES),
1020 EX(CMD_pclose,		"pclose",	ex_pclose,
1021 			BANG|TRLBAR,
1022 			ADDR_LINES),
1023 EX(CMD_perl,		"perl",		ex_perl,
1024 			RANGE|EXTRA|DFLALL|NEEDARG|SBOXOK|CMDWIN,
1025 			ADDR_LINES),
1026 EX(CMD_perldo,		"perldo",	ex_perldo,
1027 			RANGE|EXTRA|DFLALL|NEEDARG|CMDWIN,
1028 			ADDR_LINES),
1029 EX(CMD_pedit,		"pedit",	ex_pedit,
1030 			BANG|FILE1|EDITCMD|ARGOPT|TRLBAR,
1031 			ADDR_LINES),
1032 EX(CMD_pop,		"pop",		ex_tag,
1033 			RANGE|NOTADR|BANG|COUNT|TRLBAR|ZEROR,
1034 			ADDR_LINES),
1035 EX(CMD_popup,		"popup",	ex_popup,
1036 			NEEDARG|EXTRA|BANG|TRLBAR|NOTRLCOM|CMDWIN,
1037 			ADDR_LINES),
1038 EX(CMD_ppop,		"ppop",		ex_ptag,
1039 			RANGE|NOTADR|BANG|COUNT|TRLBAR|ZEROR,
1040 			ADDR_LINES),
1041 EX(CMD_preserve,	"preserve",	ex_preserve,
1042 			TRLBAR,
1043 			ADDR_LINES),
1044 EX(CMD_previous,	"previous",	ex_previous,
1045 			EXTRA|RANGE|NOTADR|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR,
1046 			ADDR_LINES),
1047 EX(CMD_promptfind,	"promptfind",	gui_mch_find_dialog,
1048 			EXTRA|NOTRLCOM|CMDWIN,
1049 			ADDR_LINES),
1050 EX(CMD_promptrepl,	"promptrepl",	gui_mch_replace_dialog,
1051 			EXTRA|NOTRLCOM|CMDWIN,
1052 			ADDR_LINES),
1053 EX(CMD_profile,		"profile",	ex_profile,
1054 			BANG|EXTRA|TRLBAR|CMDWIN,
1055 			ADDR_LINES),
1056 EX(CMD_profdel,		"profdel",	ex_breakdel,
1057 			EXTRA|TRLBAR|CMDWIN,
1058 			ADDR_LINES),
1059 EX(CMD_psearch,		"psearch",	ex_psearch,
1060 			BANG|RANGE|WHOLEFOLD|DFLALL|EXTRA,
1061 			ADDR_LINES),
1062 EX(CMD_ptag,		"ptag",		ex_ptag,
1063 			RANGE|NOTADR|BANG|WORD1|TRLBAR|ZEROR,
1064 			ADDR_LINES),
1065 EX(CMD_ptNext,		"ptNext",	ex_ptag,
1066 			RANGE|NOTADR|BANG|TRLBAR|ZEROR,
1067 			ADDR_LINES),
1068 EX(CMD_ptfirst,		"ptfirst",	ex_ptag,
1069 			RANGE|NOTADR|BANG|TRLBAR|ZEROR,
1070 			ADDR_LINES),
1071 EX(CMD_ptjump,		"ptjump",	ex_ptag,
1072 			BANG|TRLBAR|WORD1,
1073 			ADDR_LINES),
1074 EX(CMD_ptlast,		"ptlast",	ex_ptag,
1075 			BANG|TRLBAR,
1076 			ADDR_LINES),
1077 EX(CMD_ptnext,		"ptnext",	ex_ptag,
1078 			RANGE|NOTADR|BANG|TRLBAR|ZEROR,
1079 			ADDR_LINES),
1080 EX(CMD_ptprevious,	"ptprevious",	ex_ptag,
1081 			RANGE|NOTADR|BANG|TRLBAR|ZEROR,
1082 			ADDR_LINES),
1083 EX(CMD_ptrewind,	"ptrewind",	ex_ptag,
1084 			RANGE|NOTADR|BANG|TRLBAR|ZEROR,
1085 			ADDR_LINES),
1086 EX(CMD_ptselect,	"ptselect",	ex_ptag,
1087 			BANG|TRLBAR|WORD1,
1088 			ADDR_LINES),
1089 EX(CMD_put,		"put",		ex_put,
1090 			RANGE|WHOLEFOLD|BANG|REGSTR|TRLBAR|ZEROR|CMDWIN|MODIFY,
1091 			ADDR_LINES),
1092 EX(CMD_pwd,		"pwd",		ex_pwd,
1093 			TRLBAR|CMDWIN,
1094 			ADDR_LINES),
1095 EX(CMD_python,		"python",	ex_python,
1096 			RANGE|EXTRA|NEEDARG|CMDWIN,
1097 			ADDR_LINES),
1098 EX(CMD_pydo,		"pydo",		ex_pydo,
1099 			RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN,
1100 			ADDR_LINES),
1101 EX(CMD_pyfile,		"pyfile",	ex_pyfile,
1102 			RANGE|FILE1|NEEDARG|CMDWIN,
1103 			ADDR_LINES),
1104 EX(CMD_py3,		"py3",		ex_py3,
1105 			RANGE|EXTRA|NEEDARG|CMDWIN,
1106 			ADDR_LINES),
1107 EX(CMD_py3do,		"py3do",	ex_py3do,
1108 			RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN,
1109 			ADDR_LINES),
1110 EX(CMD_python3,		"python3",	ex_py3,
1111 			RANGE|EXTRA|NEEDARG|CMDWIN,
1112 			ADDR_LINES),
1113 EX(CMD_py3file,		"py3file",	ex_py3file,
1114 			RANGE|FILE1|NEEDARG|CMDWIN,
1115 			ADDR_LINES),
1116 EX(CMD_quit,		"quit",		ex_quit,
1117 			BANG|RANGE|COUNT|NOTADR|TRLBAR|CMDWIN,
1118 			ADDR_WINDOWS),
1119 EX(CMD_quitall,		"quitall",	ex_quit_all,
1120 			BANG|TRLBAR,
1121 			ADDR_LINES),
1122 EX(CMD_qall,		"qall",		ex_quit_all,
1123 			BANG|TRLBAR|CMDWIN,
1124 			ADDR_LINES),
1125 EX(CMD_read,		"read",		ex_read,
1126 			BANG|RANGE|WHOLEFOLD|FILE1|ARGOPT|TRLBAR|ZEROR|CMDWIN|MODIFY,
1127 			ADDR_LINES),
1128 EX(CMD_recover,		"recover",	ex_recover,
1129 			BANG|FILE1|TRLBAR,
1130 			ADDR_LINES),
1131 EX(CMD_redo,		"redo",		ex_redo,
1132 			TRLBAR|CMDWIN,
1133 			ADDR_LINES),
1134 EX(CMD_redir,		"redir",	ex_redir,
1135 			BANG|FILES|TRLBAR|CMDWIN,
1136 			ADDR_LINES),
1137 EX(CMD_redraw,		"redraw",	ex_redraw,
1138 			BANG|TRLBAR|CMDWIN,
1139 			ADDR_LINES),
1140 EX(CMD_redrawstatus,	"redrawstatus",	ex_redrawstatus,
1141 			BANG|TRLBAR|CMDWIN,
1142 			ADDR_LINES),
1143 EX(CMD_registers,	"registers",	ex_display,
1144 			EXTRA|NOTRLCOM|TRLBAR|CMDWIN,
1145 			ADDR_LINES),
1146 EX(CMD_resize,		"resize",	ex_resize,
1147 			RANGE|NOTADR|TRLBAR|WORD1,
1148 			ADDR_LINES),
1149 EX(CMD_retab,		"retab",	ex_retab,
1150 			TRLBAR|RANGE|WHOLEFOLD|DFLALL|BANG|WORD1|CMDWIN|MODIFY,
1151 			ADDR_LINES),
1152 EX(CMD_return,		"return",	ex_return,
1153 			EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
1154 			ADDR_LINES),
1155 EX(CMD_rewind,		"rewind",	ex_rewind,
1156 			EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR,
1157 			ADDR_LINES),
1158 EX(CMD_right,		"right",	ex_align,
1159 			TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY,
1160 			ADDR_LINES),
1161 EX(CMD_rightbelow,	"rightbelow",	ex_wrongmodifier,
1162 			NEEDARG|EXTRA|NOTRLCOM,
1163 			ADDR_LINES),
1164 EX(CMD_runtime,		"runtime",	ex_runtime,
1165 			BANG|NEEDARG|FILES|TRLBAR|SBOXOK|CMDWIN,
1166 			ADDR_LINES),
1167 EX(CMD_ruby,		"ruby",		ex_ruby,
1168 			RANGE|EXTRA|NEEDARG|CMDWIN,
1169 			ADDR_LINES),
1170 EX(CMD_rubydo,		"rubydo",	ex_rubydo,
1171 			RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN,
1172 			ADDR_LINES),
1173 EX(CMD_rubyfile,	"rubyfile",	ex_rubyfile,
1174 			RANGE|FILE1|NEEDARG|CMDWIN,
1175 			ADDR_LINES),
1176 EX(CMD_rundo,		"rundo",	ex_rundo,
1177 			NEEDARG|FILE1,
1178 			ADDR_LINES),
1179 EX(CMD_rviminfo,	"rviminfo",	ex_viminfo,
1180 			BANG|FILE1|TRLBAR|CMDWIN,
1181 			ADDR_LINES),
1182 EX(CMD_substitute,	"substitute",	do_sub,
1183 			RANGE|WHOLEFOLD|EXTRA|CMDWIN,
1184 			ADDR_LINES),
1185 EX(CMD_sNext,		"sNext",	ex_previous,
1186 			EXTRA|RANGE|NOTADR|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR,
1187 			ADDR_LINES),
1188 EX(CMD_sargument,	"sargument",	ex_argument,
1189 			BANG|RANGE|NOTADR|COUNT|EXTRA|EDITCMD|ARGOPT|TRLBAR,
1190 			ADDR_ARGUMENTS),
1191 EX(CMD_sall,		"sall",		ex_all,
1192 			BANG|RANGE|NOTADR|COUNT|TRLBAR,
1193 			ADDR_LINES),
1194 EX(CMD_sandbox,		"sandbox",	ex_wrongmodifier,
1195 			NEEDARG|EXTRA|NOTRLCOM,
1196 			ADDR_LINES),
1197 EX(CMD_saveas,		"saveas",	ex_write,
1198 			BANG|DFLALL|FILE1|ARGOPT|CMDWIN|TRLBAR,
1199 			ADDR_LINES),
1200 EX(CMD_sbuffer,		"sbuffer",	ex_buffer,
1201 			BANG|RANGE|NOTADR|BUFNAME|BUFUNL|COUNT|EXTRA|EDITCMD|TRLBAR,
1202 			ADDR_BUFFERS),
1203 EX(CMD_sbNext,		"sbNext",	ex_bprevious,
1204 			RANGE|NOTADR|COUNT|EDITCMD|TRLBAR,
1205 			ADDR_LINES),
1206 EX(CMD_sball,		"sball",	ex_buffer_all,
1207 			RANGE|NOTADR|COUNT|EDITCMD|TRLBAR,
1208 			ADDR_LINES),
1209 EX(CMD_sbfirst,		"sbfirst",	ex_brewind,
1210 			EDITCMD|TRLBAR,
1211 			ADDR_LINES),
1212 EX(CMD_sblast,		"sblast",	ex_blast,
1213 			EDITCMD|TRLBAR,
1214 			ADDR_LINES),
1215 EX(CMD_sbmodified,	"sbmodified",	ex_bmodified,
1216 			RANGE|NOTADR|COUNT|EDITCMD|TRLBAR,
1217 			ADDR_LINES),
1218 EX(CMD_sbnext,		"sbnext",	ex_bnext,
1219 			RANGE|NOTADR|COUNT|EDITCMD|TRLBAR,
1220 			ADDR_LINES),
1221 EX(CMD_sbprevious,	"sbprevious",	ex_bprevious,
1222 			RANGE|NOTADR|COUNT|EDITCMD|TRLBAR,
1223 			ADDR_LINES),
1224 EX(CMD_sbrewind,	"sbrewind",	ex_brewind,
1225 			EDITCMD|TRLBAR,
1226 			ADDR_LINES),
1227 EX(CMD_scriptnames,	"scriptnames",	ex_scriptnames,
1228 			TRLBAR|CMDWIN,
1229 			ADDR_LINES),
1230 EX(CMD_scriptencoding,	"scriptencoding", ex_scriptencoding,
1231 			WORD1|TRLBAR|CMDWIN,
1232 			ADDR_LINES),
1233 EX(CMD_scscope,		"scscope",	do_scscope,
1234 			EXTRA|NOTRLCOM,
1235 			ADDR_LINES),
1236 EX(CMD_set,		"set",		ex_set,
1237 			TRLBAR|EXTRA|CMDWIN|SBOXOK,
1238 			ADDR_LINES),
1239 EX(CMD_setfiletype,	"setfiletype",	ex_setfiletype,
1240 			TRLBAR|EXTRA|NEEDARG|CMDWIN,
1241 			ADDR_LINES),
1242 EX(CMD_setglobal,	"setglobal",	ex_set,
1243 			TRLBAR|EXTRA|CMDWIN|SBOXOK,
1244 			ADDR_LINES),
1245 EX(CMD_setlocal,	"setlocal",	ex_set,
1246 			TRLBAR|EXTRA|CMDWIN|SBOXOK,
1247 			ADDR_LINES),
1248 EX(CMD_sfind,		"sfind",	ex_splitview,
1249 			BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR,
1250 			ADDR_LINES),
1251 EX(CMD_sfirst,		"sfirst",	ex_rewind,
1252 			EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR,
1253 			ADDR_LINES),
1254 EX(CMD_shell,		"shell",	ex_shell,
1255 			TRLBAR|CMDWIN,
1256 			ADDR_LINES),
1257 EX(CMD_simalt,		"simalt",	ex_simalt,
1258 			NEEDARG|WORD1|TRLBAR|CMDWIN,
1259 			ADDR_LINES),
1260 EX(CMD_sign,		"sign",		ex_sign,
1261 			NEEDARG|RANGE|NOTADR|EXTRA|CMDWIN,
1262 			ADDR_LINES),
1263 EX(CMD_silent,		"silent",	ex_wrongmodifier,
1264 			NEEDARG|EXTRA|BANG|NOTRLCOM|SBOXOK|CMDWIN,
1265 			ADDR_LINES),
1266 EX(CMD_sleep,		"sleep",	ex_sleep,
1267 			RANGE|NOTADR|COUNT|EXTRA|TRLBAR|CMDWIN,
1268 			ADDR_LINES),
1269 EX(CMD_slast,		"slast",	ex_last,
1270 			EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR,
1271 			ADDR_LINES),
1272 EX(CMD_smagic,		"smagic",	ex_submagic,
1273 			RANGE|WHOLEFOLD|EXTRA|CMDWIN,
1274 			ADDR_LINES),
1275 EX(CMD_smap,		"smap",		ex_map,
1276 			EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
1277 			ADDR_LINES),
1278 EX(CMD_smapclear,	"smapclear",	ex_mapclear,
1279 			EXTRA|TRLBAR|CMDWIN,
1280 			ADDR_LINES),
1281 EX(CMD_smenu,		"smenu",	ex_menu,
1282 			RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
1283 			ADDR_LINES),
1284 EX(CMD_snext,		"snext",	ex_next,
1285 			RANGE|NOTADR|BANG|FILES|EDITCMD|ARGOPT|TRLBAR,
1286 			ADDR_LINES),
1287 EX(CMD_snomagic,	"snomagic",	ex_submagic,
1288 			RANGE|WHOLEFOLD|EXTRA|CMDWIN,
1289 			ADDR_LINES),
1290 EX(CMD_snoremap,	"snoremap",	ex_map,
1291 			EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
1292 			ADDR_LINES),
1293 EX(CMD_snoremenu,	"snoremenu",	ex_menu,
1294 			RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
1295 			ADDR_LINES),
1296 EX(CMD_source,		"source",	ex_source,
1297 			BANG|FILE1|TRLBAR|SBOXOK|CMDWIN,
1298 			ADDR_LINES),
1299 EX(CMD_sort,		"sort",		ex_sort,
1300 			RANGE|DFLALL|WHOLEFOLD|BANG|EXTRA|NOTRLCOM|MODIFY,
1301 			ADDR_LINES),
1302 EX(CMD_split,		"split",	ex_splitview,
1303 			BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR,
1304 			ADDR_LINES),
1305 EX(CMD_spellgood,	"spellgood",	ex_spell,
1306 			BANG|RANGE|NOTADR|NEEDARG|EXTRA|TRLBAR,
1307 			ADDR_LINES),
1308 EX(CMD_spelldump,	"spelldump",	ex_spelldump,
1309 			BANG|TRLBAR,
1310 			ADDR_LINES),
1311 EX(CMD_spellinfo,	"spellinfo",	ex_spellinfo,
1312 			TRLBAR,
1313 			ADDR_LINES),
1314 EX(CMD_spellrepall,	"spellrepall",	ex_spellrepall,
1315 			TRLBAR,
1316 			ADDR_LINES),
1317 EX(CMD_spellundo,	"spellundo",	ex_spell,
1318 			BANG|RANGE|NOTADR|NEEDARG|EXTRA|TRLBAR,
1319 			ADDR_LINES),
1320 EX(CMD_spellwrong,	"spellwrong",	ex_spell,
1321 			BANG|RANGE|NOTADR|NEEDARG|EXTRA|TRLBAR,
1322 			ADDR_LINES),
1323 EX(CMD_sprevious,	"sprevious",	ex_previous,
1324 			EXTRA|RANGE|NOTADR|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR,
1325 			ADDR_LINES),
1326 EX(CMD_srewind,		"srewind",	ex_rewind,
1327 			EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR,
1328 			ADDR_LINES),
1329 EX(CMD_stop,		"stop",		ex_stop,
1330 			TRLBAR|BANG|CMDWIN,
1331 			ADDR_LINES),
1332 EX(CMD_stag,		"stag",		ex_stag,
1333 			RANGE|NOTADR|BANG|WORD1|TRLBAR|ZEROR,
1334 			ADDR_LINES),
1335 EX(CMD_startinsert,	"startinsert",	ex_startinsert,
1336 			BANG|TRLBAR|CMDWIN,
1337 			ADDR_LINES),
1338 EX(CMD_startgreplace,	"startgreplace", ex_startinsert,
1339 			BANG|TRLBAR|CMDWIN,
1340 			ADDR_LINES),
1341 EX(CMD_startreplace,	"startreplace",	ex_startinsert,
1342 			BANG|TRLBAR|CMDWIN,
1343 			ADDR_LINES),
1344 EX(CMD_stopinsert,	"stopinsert",	ex_stopinsert,
1345 			BANG|TRLBAR|CMDWIN,
1346 			ADDR_LINES),
1347 EX(CMD_stjump,		"stjump",	ex_stag,
1348 			BANG|TRLBAR|WORD1,
1349 			ADDR_LINES),
1350 EX(CMD_stselect,	"stselect",	ex_stag,
1351 			BANG|TRLBAR|WORD1,
1352 			ADDR_LINES),
1353 EX(CMD_sunhide,		"sunhide",	ex_buffer_all,
1354 			RANGE|NOTADR|COUNT|TRLBAR,
1355 			ADDR_LINES),
1356 EX(CMD_sunmap,		"sunmap",	ex_unmap,
1357 			EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
1358 			ADDR_LINES),
1359 EX(CMD_sunmenu,		"sunmenu",	ex_menu,
1360 			EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
1361 			ADDR_LINES),
1362 EX(CMD_suspend,		"suspend",	ex_stop,
1363 			TRLBAR|BANG|CMDWIN,
1364 			ADDR_LINES),
1365 EX(CMD_sview,		"sview",	ex_splitview,
1366 			BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR,
1367 			ADDR_LINES),
1368 EX(CMD_swapname,	"swapname",	ex_swapname,
1369 			TRLBAR|CMDWIN,
1370 			ADDR_LINES),
1371 EX(CMD_syntax,		"syntax",	ex_syntax,
1372 			EXTRA|NOTRLCOM|CMDWIN,
1373 			ADDR_LINES),
1374 EX(CMD_syntime,		"syntime",	ex_syntime,
1375 			NEEDARG|WORD1|TRLBAR|CMDWIN,
1376 			ADDR_LINES),
1377 EX(CMD_syncbind,	"syncbind",	ex_syncbind,
1378 			TRLBAR,
1379 			ADDR_LINES),
1380 EX(CMD_smile,		"smile",	ex_smile,
1381 			TRLBAR|CMDWIN|SBOXOK,
1382 			ADDR_LINES),
1383 EX(CMD_t,		"t",		ex_copymove,
1384 			RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY,
1385 			ADDR_LINES),
1386 EX(CMD_tNext,		"tNext",	ex_tag,
1387 			RANGE|NOTADR|BANG|TRLBAR|ZEROR,
1388 			ADDR_LINES),
1389 EX(CMD_tag,		"tag",		ex_tag,
1390 			RANGE|NOTADR|BANG|WORD1|TRLBAR|ZEROR,
1391 			ADDR_LINES),
1392 EX(CMD_tags,		"tags",		do_tags,
1393 			TRLBAR|CMDWIN,
1394 			ADDR_LINES),
1395 EX(CMD_tab,		"tab",		ex_wrongmodifier,
1396 			NEEDARG|EXTRA|NOTRLCOM,
1397 			ADDR_LINES),
1398 EX(CMD_tabclose,	"tabclose",	ex_tabclose,
1399 			RANGE|NOTADR|COUNT|BANG|TRLBAR|CMDWIN,
1400 			ADDR_TABS),
1401 EX(CMD_tabdo,		"tabdo",	ex_listdo,
1402 			NEEDARG|EXTRA|NOTRLCOM|RANGE|NOTADR|DFLALL,
1403 			ADDR_TABS),
1404 EX(CMD_tabedit,		"tabedit",	ex_splitview,
1405 			BANG|FILE1|RANGE|NOTADR|ZEROR|EDITCMD|ARGOPT|TRLBAR,
1406 			ADDR_TABS),
1407 EX(CMD_tabfind,		"tabfind",	ex_splitview,
1408 			BANG|FILE1|RANGE|NOTADR|ZEROR|EDITCMD|ARGOPT|NEEDARG|TRLBAR,
1409 			ADDR_TABS),
1410 EX(CMD_tabfirst,	"tabfirst",	ex_tabnext,
1411 			TRLBAR,
1412 			ADDR_LINES),
1413 EX(CMD_tabmove,		"tabmove",	ex_tabmove,
1414 			RANGE|NOTADR|ZEROR|EXTRA|NOSPC|TRLBAR,
1415 			ADDR_TABS),
1416 EX(CMD_tablast,		"tablast",	ex_tabnext,
1417 			TRLBAR,
1418 			ADDR_LINES),
1419 EX(CMD_tabnext,		"tabnext",	ex_tabnext,
1420 			RANGE|NOTADR|COUNT|TRLBAR,
1421 			ADDR_LINES),
1422 EX(CMD_tabnew,		"tabnew",	ex_splitview,
1423 			BANG|FILE1|RANGE|NOTADR|ZEROR|EDITCMD|ARGOPT|TRLBAR,
1424 			ADDR_TABS),
1425 EX(CMD_tabonly,		"tabonly",	ex_tabonly,
1426 			BANG|RANGE|NOTADR|TRLBAR|CMDWIN,
1427 			ADDR_TABS),
1428 EX(CMD_tabprevious,	"tabprevious",	ex_tabnext,
1429 			RANGE|NOTADR|COUNT|TRLBAR,
1430 			ADDR_LINES),
1431 EX(CMD_tabNext,		"tabNext",	ex_tabnext,
1432 			RANGE|NOTADR|COUNT|TRLBAR,
1433 			ADDR_LINES),
1434 EX(CMD_tabrewind,	"tabrewind",	ex_tabnext,
1435 			TRLBAR,
1436 			ADDR_LINES),
1437 EX(CMD_tabs,		"tabs",		ex_tabs,
1438 			TRLBAR|CMDWIN,
1439 			ADDR_LINES),
1440 EX(CMD_tcl,		"tcl",		ex_tcl,
1441 			RANGE|EXTRA|NEEDARG|CMDWIN,
1442 			ADDR_LINES),
1443 EX(CMD_tcldo,		"tcldo",	ex_tcldo,
1444 			RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN,
1445 			ADDR_LINES),
1446 EX(CMD_tclfile,		"tclfile",	ex_tclfile,
1447 			RANGE|FILE1|NEEDARG|CMDWIN,
1448 			ADDR_LINES),
1449 EX(CMD_tearoff,		"tearoff",	ex_tearoff,
1450 			NEEDARG|EXTRA|TRLBAR|NOTRLCOM|CMDWIN,
1451 			ADDR_LINES),
1452 EX(CMD_tfirst,		"tfirst",	ex_tag,
1453 			RANGE|NOTADR|BANG|TRLBAR|ZEROR,
1454 			ADDR_LINES),
1455 EX(CMD_throw,		"throw",	ex_throw,
1456 			EXTRA|NEEDARG|SBOXOK|CMDWIN,
1457 			ADDR_LINES),
1458 EX(CMD_tjump,		"tjump",	ex_tag,
1459 			BANG|TRLBAR|WORD1,
1460 			ADDR_LINES),
1461 EX(CMD_tlast,		"tlast",	ex_tag,
1462 			BANG|TRLBAR,
1463 			ADDR_LINES),
1464 EX(CMD_tmenu,		"tmenu",	ex_menu,
1465 			RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
1466 			ADDR_LINES),
1467 EX(CMD_tnext,		"tnext",	ex_tag,
1468 			RANGE|NOTADR|BANG|TRLBAR|ZEROR,
1469 			ADDR_LINES),
1470 EX(CMD_topleft,		"topleft",	ex_wrongmodifier,
1471 			NEEDARG|EXTRA|NOTRLCOM,
1472 			ADDR_LINES),
1473 EX(CMD_tprevious,	"tprevious",	ex_tag,
1474 			RANGE|NOTADR|BANG|TRLBAR|ZEROR,
1475 			ADDR_LINES),
1476 EX(CMD_trewind,		"trewind",	ex_tag,
1477 			RANGE|NOTADR|BANG|TRLBAR|ZEROR,
1478 			ADDR_LINES),
1479 EX(CMD_try,		"try",		ex_try,
1480 			TRLBAR|SBOXOK|CMDWIN,
1481 			ADDR_LINES),
1482 EX(CMD_tselect,		"tselect",	ex_tag,
1483 			BANG|TRLBAR|WORD1,
1484 			ADDR_LINES),
1485 EX(CMD_tunmenu,		"tunmenu",	ex_menu,
1486 			EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
1487 			ADDR_LINES),
1488 EX(CMD_undo,		"undo",		ex_undo,
1489 			RANGE|NOTADR|COUNT|ZEROR|TRLBAR|CMDWIN,
1490 			ADDR_LINES),
1491 EX(CMD_undojoin,	"undojoin",	ex_undojoin,
1492 			TRLBAR|CMDWIN,
1493 			ADDR_LINES),
1494 EX(CMD_undolist,	"undolist",	ex_undolist,
1495 			TRLBAR|CMDWIN,
1496 			ADDR_LINES),
1497 EX(CMD_unabbreviate,	"unabbreviate",	ex_abbreviate,
1498 			EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
1499 			ADDR_LINES),
1500 EX(CMD_unhide,		"unhide",	ex_buffer_all,
1501 			RANGE|NOTADR|COUNT|TRLBAR,
1502 			ADDR_LINES),
1503 EX(CMD_unlet,		"unlet",	ex_unlet,
1504 			BANG|EXTRA|NEEDARG|SBOXOK|CMDWIN,
1505 			ADDR_LINES),
1506 EX(CMD_unlockvar,	"unlockvar",	ex_lockvar,
1507 			BANG|EXTRA|NEEDARG|SBOXOK|CMDWIN,
1508 			ADDR_LINES),
1509 EX(CMD_unmap,		"unmap",	ex_unmap,
1510 			BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
1511 			ADDR_LINES),
1512 EX(CMD_unmenu,		"unmenu",	ex_menu,
1513 			BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
1514 			ADDR_LINES),
1515 EX(CMD_unsilent,	"unsilent",	ex_wrongmodifier,
1516 			NEEDARG|EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
1517 			ADDR_LINES),
1518 EX(CMD_update,		"update",	ex_update,
1519 			RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR,
1520 			ADDR_LINES),
1521 EX(CMD_vglobal,		"vglobal",	ex_global,
1522 			RANGE|WHOLEFOLD|EXTRA|DFLALL|CMDWIN,
1523 			ADDR_LINES),
1524 EX(CMD_version,		"version",	ex_version,
1525 			EXTRA|TRLBAR|CMDWIN,
1526 			ADDR_LINES),
1527 EX(CMD_verbose,		"verbose",	ex_wrongmodifier,
1528 			NEEDARG|RANGE|NOTADR|EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
1529 			ADDR_LINES),
1530 EX(CMD_vertical,	"vertical",	ex_wrongmodifier,
1531 			NEEDARG|EXTRA|NOTRLCOM,
1532 			ADDR_LINES),
1533 EX(CMD_visual,		"visual",	ex_edit,
1534 			BANG|FILE1|EDITCMD|ARGOPT|TRLBAR,
1535 			ADDR_LINES),
1536 EX(CMD_view,		"view",		ex_edit,
1537 			BANG|FILE1|EDITCMD|ARGOPT|TRLBAR,
1538 			ADDR_LINES),
1539 EX(CMD_vimgrep,		"vimgrep",	ex_vimgrep,
1540 			RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
1541 			ADDR_LINES),
1542 EX(CMD_vimgrepadd,	"vimgrepadd",	ex_vimgrep,
1543 			RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
1544 			ADDR_LINES),
1545 EX(CMD_viusage,		"viusage",	ex_viusage,
1546 			TRLBAR,
1547 			ADDR_LINES),
1548 EX(CMD_vmap,		"vmap",		ex_map,
1549 			EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
1550 			ADDR_LINES),
1551 EX(CMD_vmapclear,	"vmapclear",	ex_mapclear,
1552 			EXTRA|TRLBAR|CMDWIN,
1553 			ADDR_LINES),
1554 EX(CMD_vmenu,		"vmenu",	ex_menu,
1555 			RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
1556 			ADDR_LINES),
1557 EX(CMD_vnoremap,	"vnoremap",	ex_map,
1558 			EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
1559 			ADDR_LINES),
1560 EX(CMD_vnew,		"vnew",		ex_splitview,
1561 			BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR,
1562 			ADDR_LINES),
1563 EX(CMD_vnoremenu,	"vnoremenu",	ex_menu,
1564 			RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
1565 			ADDR_LINES),
1566 EX(CMD_vsplit,		"vsplit",	ex_splitview,
1567 			BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR,
1568 			ADDR_LINES),
1569 EX(CMD_vunmap,		"vunmap",	ex_unmap,
1570 			EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
1571 			ADDR_LINES),
1572 EX(CMD_vunmenu,		"vunmenu",	ex_menu,
1573 			EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
1574 			ADDR_LINES),
1575 EX(CMD_write,		"write",	ex_write,
1576 			RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR|CMDWIN,
1577 			ADDR_LINES),
1578 EX(CMD_wNext,		"wNext",	ex_wnext,
1579 			RANGE|WHOLEFOLD|NOTADR|BANG|FILE1|ARGOPT|TRLBAR,
1580 			ADDR_LINES),
1581 EX(CMD_wall,		"wall",		do_wqall,
1582 			BANG|TRLBAR|CMDWIN,
1583 			ADDR_LINES),
1584 EX(CMD_while,		"while",	ex_while,
1585 			EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
1586 			ADDR_LINES),
1587 EX(CMD_winsize,		"winsize",	ex_winsize,
1588 			EXTRA|NEEDARG|TRLBAR,
1589 			ADDR_LINES),
1590 EX(CMD_wincmd,		"wincmd",	ex_wincmd,
1591 			NEEDARG|WORD1|RANGE|NOTADR,
1592 			ADDR_WINDOWS),
1593 EX(CMD_windo,		"windo",	ex_listdo,
1594 			BANG|NEEDARG|EXTRA|NOTRLCOM|RANGE|NOTADR|DFLALL,
1595 			ADDR_WINDOWS),
1596 EX(CMD_winpos,		"winpos",	ex_winpos,
1597 			EXTRA|TRLBAR|CMDWIN,
1598 			ADDR_LINES),
1599 EX(CMD_wnext,		"wnext",	ex_wnext,
1600 			RANGE|NOTADR|BANG|FILE1|ARGOPT|TRLBAR,
1601 			ADDR_LINES),
1602 EX(CMD_wprevious,	"wprevious",	ex_wnext,
1603 			RANGE|NOTADR|BANG|FILE1|ARGOPT|TRLBAR,
1604 			ADDR_LINES),
1605 EX(CMD_wq,		"wq",		ex_exit,
1606 			RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR,
1607 			ADDR_LINES),
1608 EX(CMD_wqall,		"wqall",	do_wqall,
1609 			BANG|FILE1|ARGOPT|DFLALL|TRLBAR,
1610 			ADDR_LINES),
1611 EX(CMD_wsverb,		"wsverb",	ex_wsverb,
1612 			EXTRA|NOTADR|NEEDARG,
1613 			ADDR_LINES),
1614 EX(CMD_wundo,		"wundo",	ex_wundo,
1615 			BANG|NEEDARG|FILE1,
1616 			ADDR_LINES),
1617 EX(CMD_wviminfo,	"wviminfo",	ex_viminfo,
1618 			BANG|FILE1|TRLBAR|CMDWIN,
1619 			ADDR_LINES),
1620 EX(CMD_xit,		"xit",		ex_exit,
1621 			RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR|CMDWIN,
1622 			ADDR_LINES),
1623 EX(CMD_xall,		"xall",		do_wqall,
1624 			BANG|TRLBAR,
1625 			ADDR_LINES),
1626 EX(CMD_xmap,		"xmap",		ex_map,
1627 			EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
1628 			ADDR_LINES),
1629 EX(CMD_xmapclear,	"xmapclear",	ex_mapclear,
1630 			EXTRA|TRLBAR|CMDWIN,
1631 			ADDR_LINES),
1632 EX(CMD_xmenu,		"xmenu",	ex_menu,
1633 			RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
1634 			ADDR_LINES),
1635 EX(CMD_xnoremap,	"xnoremap",	ex_map,
1636 			EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
1637 			ADDR_LINES),
1638 EX(CMD_xnoremenu,	"xnoremenu",	ex_menu,
1639 			RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
1640 			ADDR_LINES),
1641 EX(CMD_xunmap,		"xunmap",	ex_unmap,
1642 			EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
1643 			ADDR_LINES),
1644 EX(CMD_xunmenu,		"xunmenu",	ex_menu,
1645 			EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
1646 			ADDR_LINES),
1647 EX(CMD_yank,		"yank",		ex_operators,
1648 			RANGE|WHOLEFOLD|REGSTR|COUNT|TRLBAR|CMDWIN,
1649 			ADDR_LINES),
1650 EX(CMD_z,		"z",		ex_z,
1651 			RANGE|WHOLEFOLD|EXTRA|EXFLAGS|TRLBAR|CMDWIN,
1652 			ADDR_LINES),
1653 
1654 /* commands that don't start with a lowercase letter */
1655 EX(CMD_bang,		"!",		ex_bang,
1656 			RANGE|WHOLEFOLD|BANG|FILES|CMDWIN,
1657 			ADDR_LINES),
1658 EX(CMD_pound,		"#",		ex_print,
1659 			RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN,
1660 			ADDR_LINES),
1661 EX(CMD_and,		"&",		do_sub,
1662 			RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY,
1663 			ADDR_LINES),
1664 EX(CMD_star,		"*",		ex_at,
1665 			RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN,
1666 			ADDR_LINES),
1667 EX(CMD_lshift,		"<",		ex_operators,
1668 			RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|MODIFY,
1669 			ADDR_LINES),
1670 EX(CMD_equal,		"=",		ex_equal,
1671 			RANGE|TRLBAR|DFLALL|EXFLAGS|CMDWIN,
1672 			ADDR_LINES),
1673 EX(CMD_rshift,		">",		ex_operators,
1674 			RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|MODIFY,
1675 			ADDR_LINES),
1676 EX(CMD_at,		"@",		ex_at,
1677 			RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN,
1678 			ADDR_LINES),
1679 EX(CMD_Next,		"Next",		ex_previous,
1680 			EXTRA|RANGE|NOTADR|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR,
1681 			ADDR_LINES),
1682 EX(CMD_Print,		"Print",	ex_print,
1683 			RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN,
1684 			ADDR_LINES),
1685 EX(CMD_X,		"X",		ex_X,
1686 			TRLBAR,
1687 			ADDR_LINES),
1688 EX(CMD_tilde,		"~",		do_sub,
1689 			RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY,
1690 			ADDR_LINES),
1691 
1692 #ifndef DO_DECLARE_EXCMD
1693 #ifdef FEAT_USR_CMDS
1694     CMD_SIZE,		/* MUST be after all real commands! */
1695     CMD_USER = -1,	/* User-defined command */
1696     CMD_USER_BUF = -2	/* User-defined command local to buffer */
1697 #else
1698     CMD_SIZE	/* MUST be the last one! */
1699 #endif
1700 #endif
1701 };
1702 
1703 #ifndef DO_DECLARE_EXCMD
1704 typedef enum CMD_index cmdidx_T;
1705 
1706 /*
1707  * Arguments used for Ex commands.
1708  */
1709 struct exarg
1710 {
1711     char_u	*arg;		/* argument of the command */
1712     char_u	*nextcmd;	/* next command (NULL if none) */
1713     char_u	*cmd;		/* the name of the command (except for :make) */
1714     char_u	**cmdlinep;	/* pointer to pointer of allocated cmdline */
1715     cmdidx_T	cmdidx;		/* the index for the command */
1716     long	argt;		/* flags for the command */
1717     int		skip;		/* don't execute the command, only parse it */
1718     int		forceit;	/* TRUE if ! present */
1719     int		addr_count;	/* the number of addresses given */
1720     linenr_T	line1;		/* the first line number */
1721     linenr_T	line2;		/* the second line number or count */
1722     int		addr_type;	/* type of the count/range */
1723     int		flags;		/* extra flags after count: EXFLAG_ */
1724     char_u	*do_ecmd_cmd;	/* +command arg to be used in edited file */
1725     linenr_T	do_ecmd_lnum;	/* the line number in an edited file */
1726     int		append;		/* TRUE with ":w >>file" command */
1727     int		usefilter;	/* TRUE with ":w !command" and ":r!command" */
1728     int		amount;		/* number of '>' or '<' for shift command */
1729     int		regname;	/* register name (NUL if none) */
1730     int		force_bin;	/* 0, FORCE_BIN or FORCE_NOBIN */
1731     int		read_edit;	/* ++edit argument */
1732     int		force_ff;	/* ++ff= argument (index in cmd[]) */
1733 #ifdef FEAT_MBYTE
1734     int		force_enc;	/* ++enc= argument (index in cmd[]) */
1735     int		bad_char;	/* BAD_KEEP, BAD_DROP or replacement byte */
1736 #endif
1737 #ifdef FEAT_USR_CMDS
1738     int		useridx;	/* user command index */
1739 #endif
1740     char_u	*errmsg;	/* returned error message */
1741     char_u	*(*getline)(int, void *, int);
1742     void	*cookie;	/* argument for getline() */
1743 #ifdef FEAT_EVAL
1744     struct condstack *cstack;	/* condition stack for ":if" etc. */
1745 #endif
1746 };
1747 
1748 #define FORCE_BIN 1		/* ":edit ++bin file" */
1749 #define FORCE_NOBIN 2		/* ":edit ++nobin file" */
1750 
1751 /* Values for "flags" */
1752 #define EXFLAG_LIST	0x01	/* 'l': list */
1753 #define EXFLAG_NR	0x02	/* '#': number */
1754 #define EXFLAG_PRINT	0x04	/* 'p': print */
1755 
1756 #endif
1757