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