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