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