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