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