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