]> granicus.if.org Git - vim/commitdiff
patch 8.1.1667: flags for Ex commands may clash with other symbols v8.1.1667
authorBram Moolenaar <Bram@vim.org>
Fri, 12 Jul 2019 15:58:01 +0000 (17:58 +0200)
committerBram Moolenaar <Bram@vim.org>
Fri, 12 Jul 2019 15:58:01 +0000 (17:58 +0200)
Problem:    Flags for Ex commands may clash with other symbols.
Solution:   Prepend with EX_.

src/evalfunc.c
src/ex_cmds.h
src/ex_docmd.c
src/ex_getln.c
src/syntax.c
src/usercmd.c
src/version.c

index b6998993f61a5c5788ae075196537665b280725a..4ee0d5d9a12a6960cb6da647e496a25c3b9f798e 100644 (file)
@@ -3547,7 +3547,7 @@ f_expandcmd(typval_T *argvars, typval_T *rettv)
     memset(&eap, 0, sizeof(eap));
     eap.cmd = cmdstr;
     eap.arg = cmdstr;
-    eap.argt |= NOSPC;
+    eap.argt |= EX_NOSPC;
     eap.usefilter = FALSE;
     eap.nextcmd = NULL;
     eap.cmdidx = CMD_USER;
index 647dce0708f97166a18e4c9e8e635e64fde37580..c545216731a14c640cb7de594c8b7ed93e45722a 100644 (file)
  *    long name of the command.
  */
 
-#ifdef RANGE
-# undef RANGE                  // SASC on Amiga defines it
-#endif
-
-#define RANGE          0x001   // allow a linespecs
-#define BANG           0x002   // allow a ! after the command name
-#define EXTRA          0x004   // allow extra args after command name
-#define XFILE          0x008   // expand wildcards in extra part
-#define NOSPC          0x010   // no spaces allowed in the extra part
-#define        DFLALL          0x020   // default file range is 1,$
-#define WHOLEFOLD      0x040   // extend range to include whole fold also
+#define EX_RANGE       0x001   // allow a linespecs
+#define EX_BANG                0x002   // allow a ! after the command name
+#define EX_EXTRA       0x004   // allow extra args after command name
+#define EX_XFILE       0x008   // expand wildcards in extra part
+#define EX_NOSPC       0x010   // no spaces allowed in the extra part
+#define        EX_DFLALL       0x020   // default file range is 1,$
+#define EX_WHOLEFOLD   0x040   // extend range to include whole fold also
                                // when less than two numbers given
-#define NEEDARG                0x080   // argument required
-#define TRLBAR         0x100   // check for trailing vertical bar
-#define REGSTR         0x200   // allow "x for register designation
-#define COUNT          0x400   // allow count in argument, after command
-#define NOTRLCOM       0x800   // no trailing comment allowed
-#define ZEROR         0x1000   // zero line number allowed
-#define USECTRLV       0x2000  // do not remove CTRL-V from argument
-#define EDITCMD               0x4000   // allow "+command" argument
-#define BUFNAME               0x8000   // accepts buffer name
-#define BUFUNL       0x10000L  // accepts unlisted buffer too
-#define ARGOPT       0x20000L  // allow "++opt=val" argument
-#define SBOXOK       0x40000L  // allowed in the sandbox
-#define CMDWIN       0x80000L  // allowed in cmdline window; when missing
+#define EX_NEEDARG     0x080   // argument required
+#define EX_TRLBAR      0x100   // check for trailing vertical bar
+#define EX_REGSTR      0x200   // allow "x for register designation
+#define EX_COUNT       0x400   // allow count in argument, after command
+#define EX_NOTRLCOM    0x800   // no trailing comment allowed
+#define EX_ZEROR       0x1000  // zero line number allowed
+#define EX_CTRLV       0x2000  // do not remove CTRL-V from argument
+#define EX_CMDARG      0x4000  // allow "+command" argument
+#define EX_BUFNAME     0x8000  // accepts buffer name
+#define EX_BUFUNL     0x10000  // accepts unlisted buffer too
+#define EX_ARGOPT     0x20000  // allow "++opt=val" argument
+#define EX_SBOXOK     0x40000  // allowed in the sandbox
+#define EX_CMDWIN     0x80000  // allowed in cmdline window; when missing
                                // disallows editing another buffer when
                                // curbuf_lock is set
-#define MODIFY       0x100000L // forbidden in non-'modifiable' buffer
-#define EXFLAGS      0x200000L // allow flags after count in argument
-#define RESTRICT     0x400000L // forbidden in restricted mode
-#define FILES  (XFILE | EXTRA) // multiple extra files allowed
-#define WORD1  (EXTRA | NOSPC) // one extra word allowed
-#define FILE1  (FILES | NOSPC) // 1 file allowed, defaults to current file
+#define EX_MODIFY    0x100000  // forbidden in non-'modifiable' buffer
+#define EX_FLAGS     0x200000  // allow flags after count in argument
+#define EX_RESTRICT  0x400000  // forbidden in restricted mode
+#define EX_FILES (EX_XFILE | EX_EXTRA) // multiple extra files allowed
+#define EX_FILE1 (EX_FILES | EX_NOSPC) // 1 file, defaults to current file
+#define EX_WORD1 (EX_EXTRA | EX_NOSPC) // one extra word allowed
 
 #ifndef DO_DECLARE_EXCMD
 /*
@@ -93,11 +89,8 @@ typedef struct exarg exarg_T;
  * before "rewind").
  * Not supported commands are included to avoid ambiguities.
  */
-#ifdef EX
-# undef EX         // just in case
-#endif
 #ifdef DO_DECLARE_EXCMD
-# define EX(a, b, c, d, e)  {(char_u *)b, c, (long_u)(d), e}
+# define EXCMD(a, b, c, d, e)  {(char_u *)b, c, (long_u)(d), e}
 
 typedef void (*ex_func_T) (exarg_T *eap);
 
@@ -109,1693 +102,1695 @@ static struct cmdname
     cmd_addr_T cmd_addr_type;  // flag for address type
 } cmdnames[] =
 #else
-# define EX(a, b, c, d, e)  a
+# define EXCMD(a, b, c, d, e)  a
 enum CMD_index
 #endif
 {
-EX(CMD_append,         "append",       ex_append,
-                       BANG|RANGE|ZEROR|TRLBAR|CMDWIN|MODIFY,
+EXCMD(CMD_append,              "append",       ex_append,
+                       EX_BANG|EX_RANGE|EX_ZEROR|EX_TRLBAR|EX_CMDWIN|EX_MODIFY,
                        ADDR_LINES),
-EX(CMD_abbreviate,     "abbreviate",   ex_abbreviate,
-                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_abbreviate,  "abbreviate",   ex_abbreviate,
+                       EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_abclear,                "abclear",      ex_abclear,
-                       EXTRA|TRLBAR|CMDWIN,
+EXCMD(CMD_abclear,             "abclear",      ex_abclear,
+                       EX_EXTRA|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_aboveleft,      "aboveleft",    ex_wrongmodifier,
-                       NEEDARG|EXTRA|NOTRLCOM,
+EXCMD(CMD_aboveleft,   "aboveleft",    ex_wrongmodifier,
+                       EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM,
                        ADDR_NONE),
-EX(CMD_all,            "all",          ex_all,
-                       BANG|RANGE|COUNT|TRLBAR,
+EXCMD(CMD_all,         "all",          ex_all,
+                       EX_BANG|EX_RANGE|EX_COUNT|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_amenu,          "amenu",        ex_menu,
-                       RANGE|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_amenu,               "amenu",        ex_menu,
+                       EX_RANGE|EX_ZEROR|EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_OTHER),
-EX(CMD_anoremenu,      "anoremenu",    ex_menu,
-                       RANGE|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_anoremenu,   "anoremenu",    ex_menu,
+                       EX_RANGE|EX_ZEROR|EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_OTHER),
-EX(CMD_args,           "args",         ex_args,
-                       BANG|FILES|EDITCMD|ARGOPT|TRLBAR,
+EXCMD(CMD_args,                "args",         ex_args,
+                       EX_BANG|EX_FILES|EX_CMDARG|EX_ARGOPT|EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_argadd,         "argadd",       ex_argadd,
-                       BANG|RANGE|ZEROR|FILES|TRLBAR,
+EXCMD(CMD_argadd,              "argadd",       ex_argadd,
+                       EX_BANG|EX_RANGE|EX_ZEROR|EX_FILES|EX_TRLBAR,
                        ADDR_ARGUMENTS),
-EX(CMD_argdelete,      "argdelete",    ex_argdelete,
-                       BANG|RANGE|FILES|TRLBAR,
+EXCMD(CMD_argdelete,   "argdelete",    ex_argdelete,
+                       EX_BANG|EX_RANGE|EX_FILES|EX_TRLBAR,
                        ADDR_ARGUMENTS),
-EX(CMD_argdo,          "argdo",        ex_listdo,
-                       BANG|NEEDARG|EXTRA|NOTRLCOM|RANGE|DFLALL,
+EXCMD(CMD_argdo,               "argdo",        ex_listdo,
+                       EX_BANG|EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM|EX_RANGE|EX_DFLALL,
                        ADDR_ARGUMENTS),
-EX(CMD_argedit,                "argedit",      ex_argedit,
-                       BANG|NEEDARG|RANGE|ZEROR|FILES|EDITCMD|ARGOPT|TRLBAR,
+EXCMD(CMD_argedit,             "argedit",      ex_argedit,
+                       EX_BANG|EX_NEEDARG|EX_RANGE|EX_ZEROR|EX_FILES|EX_CMDARG|EX_ARGOPT|EX_TRLBAR,
                        ADDR_ARGUMENTS),
-EX(CMD_argglobal,      "argglobal",    ex_args,
-                       BANG|FILES|EDITCMD|ARGOPT|TRLBAR,
+EXCMD(CMD_argglobal,   "argglobal",    ex_args,
+                       EX_BANG|EX_FILES|EX_CMDARG|EX_ARGOPT|EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_arglocal,       "arglocal",     ex_args,
-                       BANG|FILES|EDITCMD|ARGOPT|TRLBAR,
+EXCMD(CMD_arglocal,    "arglocal",     ex_args,
+                       EX_BANG|EX_FILES|EX_CMDARG|EX_ARGOPT|EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_argument,       "argument",     ex_argument,
-                       BANG|RANGE|COUNT|EXTRA|EDITCMD|ARGOPT|TRLBAR,
+EXCMD(CMD_argument,    "argument",     ex_argument,
+                       EX_BANG|EX_RANGE|EX_COUNT|EX_EXTRA|EX_CMDARG|EX_ARGOPT|EX_TRLBAR,
                        ADDR_ARGUMENTS),
-EX(CMD_ascii,          "ascii",        do_ascii,
-                       TRLBAR|SBOXOK|CMDWIN,
+EXCMD(CMD_ascii,               "ascii",        do_ascii,
+                       EX_TRLBAR|EX_SBOXOK|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_autocmd,                "autocmd",      ex_autocmd,
-                       BANG|EXTRA|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_autocmd,             "autocmd",      ex_autocmd,
+                       EX_BANG|EX_EXTRA|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_augroup,                "augroup",      ex_autocmd,
-                       BANG|WORD1|TRLBAR|CMDWIN,
+EXCMD(CMD_augroup,             "augroup",      ex_autocmd,
+                       EX_BANG|EX_WORD1|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_aunmenu,                "aunmenu",      ex_menu,
-                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_aunmenu,             "aunmenu",      ex_menu,
+                       EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_buffer,         "buffer",       ex_buffer,
-                       BANG|RANGE|BUFNAME|BUFUNL|COUNT|EXTRA|EDITCMD|TRLBAR,
+EXCMD(CMD_buffer,              "buffer",       ex_buffer,
+                       EX_BANG|EX_RANGE|EX_BUFNAME|EX_BUFUNL|EX_COUNT|EX_EXTRA|EX_CMDARG|EX_TRLBAR,
                        ADDR_BUFFERS),
-EX(CMD_bNext,          "bNext",        ex_bprevious,
-                       BANG|RANGE|COUNT|EDITCMD|TRLBAR,
+EXCMD(CMD_bNext,               "bNext",        ex_bprevious,
+                       EX_BANG|EX_RANGE|EX_COUNT|EX_CMDARG|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_ball,           "ball",         ex_buffer_all,
-                       RANGE|COUNT|TRLBAR,
+EXCMD(CMD_ball,                "ball",         ex_buffer_all,
+                       EX_RANGE|EX_COUNT|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_badd,           "badd",         ex_edit,
-                       NEEDARG|FILE1|EDITCMD|TRLBAR|CMDWIN,
+EXCMD(CMD_badd,                "badd",         ex_edit,
+                       EX_NEEDARG|EX_FILE1|EX_CMDARG|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_bdelete,                "bdelete",      ex_bunload,
-                       BANG|RANGE|BUFNAME|COUNT|EXTRA|TRLBAR,
+EXCMD(CMD_bdelete,             "bdelete",      ex_bunload,
+                       EX_BANG|EX_RANGE|EX_BUFNAME|EX_COUNT|EX_EXTRA|EX_TRLBAR,
                        ADDR_BUFFERS),
-EX(CMD_behave,         "behave",       ex_behave,
-                       BANG|NEEDARG|WORD1|TRLBAR|CMDWIN,
+EXCMD(CMD_behave,              "behave",       ex_behave,
+                       EX_BANG|EX_NEEDARG|EX_WORD1|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_belowright,     "belowright",   ex_wrongmodifier,
-                       NEEDARG|EXTRA|NOTRLCOM,
+EXCMD(CMD_belowright,  "belowright",   ex_wrongmodifier,
+                       EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM,
                        ADDR_NONE),
-EX(CMD_bfirst,         "bfirst",       ex_brewind,
-                       BANG|RANGE|EDITCMD|TRLBAR,
+EXCMD(CMD_bfirst,              "bfirst",       ex_brewind,
+                       EX_BANG|EX_RANGE|EX_CMDARG|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_blast,          "blast",        ex_blast,
-                       BANG|RANGE|EDITCMD|TRLBAR,
+EXCMD(CMD_blast,               "blast",        ex_blast,
+                       EX_BANG|EX_RANGE|EX_CMDARG|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_bmodified,      "bmodified",    ex_bmodified,
-                       BANG|RANGE|COUNT|EDITCMD|TRLBAR,
+EXCMD(CMD_bmodified,   "bmodified",    ex_bmodified,
+                       EX_BANG|EX_RANGE|EX_COUNT|EX_CMDARG|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_bnext,          "bnext",        ex_bnext,
-                       BANG|RANGE|COUNT|EDITCMD|TRLBAR,
+EXCMD(CMD_bnext,               "bnext",        ex_bnext,
+                       EX_BANG|EX_RANGE|EX_COUNT|EX_CMDARG|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_botright,       "botright",     ex_wrongmodifier,
-                       NEEDARG|EXTRA|NOTRLCOM,
+EXCMD(CMD_botright,    "botright",     ex_wrongmodifier,
+                       EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM,
                        ADDR_NONE),
-EX(CMD_bprevious,      "bprevious",    ex_bprevious,
-                       BANG|RANGE|COUNT|EDITCMD|TRLBAR,
+EXCMD(CMD_bprevious,   "bprevious",    ex_bprevious,
+                       EX_BANG|EX_RANGE|EX_COUNT|EX_CMDARG|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_brewind,                "brewind",      ex_brewind,
-                       BANG|RANGE|EDITCMD|TRLBAR,
+EXCMD(CMD_brewind,             "brewind",      ex_brewind,
+                       EX_BANG|EX_RANGE|EX_CMDARG|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_break,          "break",        ex_break,
-                       TRLBAR|SBOXOK|CMDWIN,
+EXCMD(CMD_break,               "break",        ex_break,
+                       EX_TRLBAR|EX_SBOXOK|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_breakadd,       "breakadd",     ex_breakadd,
-                       EXTRA|TRLBAR|CMDWIN,
+EXCMD(CMD_breakadd,    "breakadd",     ex_breakadd,
+                       EX_EXTRA|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_breakdel,       "breakdel",     ex_breakdel,
-                       EXTRA|TRLBAR|CMDWIN,
+EXCMD(CMD_breakdel,    "breakdel",     ex_breakdel,
+                       EX_EXTRA|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_breaklist,      "breaklist",    ex_breaklist,
-                       EXTRA|TRLBAR|CMDWIN,
+EXCMD(CMD_breaklist,   "breaklist",    ex_breaklist,
+                       EX_EXTRA|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_browse,         "browse",       ex_wrongmodifier,
-                       NEEDARG|EXTRA|NOTRLCOM|CMDWIN,
+EXCMD(CMD_browse,              "browse",       ex_wrongmodifier,
+                       EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_buffers,                "buffers",      buflist_list,
-                       BANG|EXTRA|TRLBAR|CMDWIN,
+EXCMD(CMD_buffers,             "buffers",      buflist_list,
+                       EX_BANG|EX_EXTRA|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_bufdo,          "bufdo",        ex_listdo,
-                       BANG|NEEDARG|EXTRA|NOTRLCOM|RANGE|DFLALL,
+EXCMD(CMD_bufdo,               "bufdo",        ex_listdo,
+                       EX_BANG|EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM|EX_RANGE|EX_DFLALL,
                        ADDR_BUFFERS),
-EX(CMD_bunload,                "bunload",      ex_bunload,
-                       BANG|RANGE|BUFNAME|COUNT|EXTRA|TRLBAR,
+EXCMD(CMD_bunload,             "bunload",      ex_bunload,
+                       EX_BANG|EX_RANGE|EX_BUFNAME|EX_COUNT|EX_EXTRA|EX_TRLBAR,
                        ADDR_LOADED_BUFFERS),
-EX(CMD_bwipeout,       "bwipeout",     ex_bunload,
-                       BANG|RANGE|BUFNAME|BUFUNL|COUNT|EXTRA|TRLBAR,
+EXCMD(CMD_bwipeout,    "bwipeout",     ex_bunload,
+                       EX_BANG|EX_RANGE|EX_BUFNAME|EX_BUFUNL|EX_COUNT|EX_EXTRA|EX_TRLBAR,
                        ADDR_BUFFERS),
-EX(CMD_change,         "change",       ex_change,
-                       BANG|WHOLEFOLD|RANGE|COUNT|TRLBAR|CMDWIN|MODIFY,
+EXCMD(CMD_change,              "change",       ex_change,
+                       EX_BANG|EX_WHOLEFOLD|EX_RANGE|EX_COUNT|EX_TRLBAR|EX_CMDWIN|EX_MODIFY,
                        ADDR_LINES),
-EX(CMD_cNext,          "cNext",        ex_cnext,
-                       RANGE|COUNT|TRLBAR|BANG,
+EXCMD(CMD_cNext,               "cNext",        ex_cnext,
+                       EX_RANGE|EX_COUNT|EX_TRLBAR|EX_BANG,
                        ADDR_UNSIGNED),
-EX(CMD_cNfile,         "cNfile",       ex_cnext,
-                       RANGE|COUNT|TRLBAR|BANG,
+EXCMD(CMD_cNfile,              "cNfile",       ex_cnext,
+                       EX_RANGE|EX_COUNT|EX_TRLBAR|EX_BANG,
                        ADDR_UNSIGNED),
-EX(CMD_cabbrev,                "cabbrev",      ex_abbreviate,
-                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_cabbrev,             "cabbrev",      ex_abbreviate,
+                       EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_cabclear,       "cabclear",     ex_abclear,
-                       EXTRA|TRLBAR|CMDWIN,
+EXCMD(CMD_cabclear,    "cabclear",     ex_abclear,
+                       EX_EXTRA|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_cabove,         "cabove",       ex_cbelow,
-                       RANGE|COUNT|TRLBAR,
+EXCMD(CMD_cabove,              "cabove",       ex_cbelow,
+                       EX_RANGE|EX_COUNT|EX_TRLBAR,
                        ADDR_UNSIGNED),
-EX(CMD_caddbuffer,     "caddbuffer",   ex_cbuffer,
-                       RANGE|WORD1|TRLBAR,
+EXCMD(CMD_caddbuffer,  "caddbuffer",   ex_cbuffer,
+                       EX_RANGE|EX_WORD1|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_caddexpr,       "caddexpr",     ex_cexpr,
-                       NEEDARG|WORD1|NOTRLCOM|TRLBAR,
+EXCMD(CMD_caddexpr,    "caddexpr",     ex_cexpr,
+                       EX_NEEDARG|EX_WORD1|EX_NOTRLCOM|EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_caddfile,       "caddfile",     ex_cfile,
-                       TRLBAR|FILE1,
+EXCMD(CMD_caddfile,    "caddfile",     ex_cfile,
+                       EX_TRLBAR|EX_FILE1,
                        ADDR_NONE),
-EX(CMD_cafter,         "cafter",       ex_cbelow,
-                       RANGE|COUNT|TRLBAR,
+EXCMD(CMD_cafter,              "cafter",       ex_cbelow,
+                       EX_RANGE|EX_COUNT|EX_TRLBAR,
                        ADDR_UNSIGNED),
-EX(CMD_call,           "call",         ex_call,
-                       RANGE|NEEDARG|EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
+EXCMD(CMD_call,                "call",         ex_call,
+                       EX_RANGE|EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM|EX_SBOXOK|EX_CMDWIN,
                        ADDR_LINES),
-EX(CMD_catch,          "catch",        ex_catch,
-                       EXTRA|SBOXOK|CMDWIN,
+EXCMD(CMD_catch,               "catch",        ex_catch,
+                       EX_EXTRA|EX_SBOXOK|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_cbuffer,                "cbuffer",      ex_cbuffer,
-                       BANG|RANGE|WORD1|TRLBAR,
+EXCMD(CMD_cbuffer,             "cbuffer",      ex_cbuffer,
+                       EX_BANG|EX_RANGE|EX_WORD1|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_cbefore,                "cbefore",      ex_cbelow,
-                       RANGE|COUNT|TRLBAR,
+EXCMD(CMD_cbefore,             "cbefore",      ex_cbelow,
+                       EX_RANGE|EX_COUNT|EX_TRLBAR,
                        ADDR_UNSIGNED),
-EX(CMD_cbelow,         "cbelow",       ex_cbelow,
-                       RANGE|COUNT|TRLBAR,
+EXCMD(CMD_cbelow,              "cbelow",       ex_cbelow,
+                       EX_RANGE|EX_COUNT|EX_TRLBAR,
                        ADDR_UNSIGNED),
-EX(CMD_cbottom,                "cbottom",      ex_cbottom,
-                       TRLBAR,
+EXCMD(CMD_cbottom,             "cbottom",      ex_cbottom,
+                       EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_cc,             "cc",           ex_cc,
-                       RANGE|COUNT|TRLBAR|BANG,
+EXCMD(CMD_cc,          "cc",           ex_cc,
+                       EX_RANGE|EX_COUNT|EX_TRLBAR|EX_BANG,
                        ADDR_QUICKFIX),
-EX(CMD_cclose,         "cclose",       ex_cclose,
-                       TRLBAR,
+EXCMD(CMD_cclose,              "cclose",       ex_cclose,
+                       EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_cd,             "cd",           ex_cd,
-                       BANG|FILE1|TRLBAR|CMDWIN,
+EXCMD(CMD_cd,          "cd",           ex_cd,
+                       EX_BANG|EX_FILE1|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_cdo,            "cdo",          ex_listdo,
-                       BANG|NEEDARG|EXTRA|NOTRLCOM|RANGE|DFLALL,
+EXCMD(CMD_cdo,         "cdo",          ex_listdo,
+                       EX_BANG|EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM|EX_RANGE|EX_DFLALL,
                        ADDR_QUICKFIX_VALID),
-EX(CMD_center,         "center",       ex_align,
-                       TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY,
+EXCMD(CMD_center,              "center",       ex_align,
+                       EX_TRLBAR|EX_RANGE|EX_WHOLEFOLD|EX_EXTRA|EX_CMDWIN|EX_MODIFY,
                        ADDR_LINES),
-EX(CMD_cexpr,          "cexpr",        ex_cexpr,
-                       NEEDARG|WORD1|NOTRLCOM|TRLBAR|BANG,
+EXCMD(CMD_cexpr,               "cexpr",        ex_cexpr,
+                       EX_NEEDARG|EX_WORD1|EX_NOTRLCOM|EX_TRLBAR|EX_BANG,
                        ADDR_NONE),
-EX(CMD_cfile,          "cfile",        ex_cfile,
-                       TRLBAR|FILE1|BANG,
+EXCMD(CMD_cfile,               "cfile",        ex_cfile,
+                       EX_TRLBAR|EX_FILE1|EX_BANG,
                        ADDR_NONE),
-EX(CMD_cfdo,           "cfdo",         ex_listdo,
-                       BANG|NEEDARG|EXTRA|NOTRLCOM|RANGE|DFLALL,
+EXCMD(CMD_cfdo,                "cfdo",         ex_listdo,
+                       EX_BANG|EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM|EX_RANGE|EX_DFLALL,
                        ADDR_QUICKFIX_VALID),
-EX(CMD_cfirst,         "cfirst",       ex_cc,
-                       RANGE|COUNT|TRLBAR|BANG,
+EXCMD(CMD_cfirst,              "cfirst",       ex_cc,
+                       EX_RANGE|EX_COUNT|EX_TRLBAR|EX_BANG,
                        ADDR_UNSIGNED),
-EX(CMD_cgetfile,       "cgetfile",     ex_cfile,
-                       TRLBAR|FILE1,
+EXCMD(CMD_cgetfile,    "cgetfile",     ex_cfile,
+                       EX_TRLBAR|EX_FILE1,
                        ADDR_NONE),
-EX(CMD_cgetbuffer,     "cgetbuffer",   ex_cbuffer,
-                       RANGE|WORD1|TRLBAR,
+EXCMD(CMD_cgetbuffer,  "cgetbuffer",   ex_cbuffer,
+                       EX_RANGE|EX_WORD1|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_cgetexpr,       "cgetexpr",     ex_cexpr,
-                       NEEDARG|WORD1|NOTRLCOM|TRLBAR,
+EXCMD(CMD_cgetexpr,    "cgetexpr",     ex_cexpr,
+                       EX_NEEDARG|EX_WORD1|EX_NOTRLCOM|EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_chdir,          "chdir",        ex_cd,
-                       BANG|FILE1|TRLBAR|CMDWIN,
+EXCMD(CMD_chdir,               "chdir",        ex_cd,
+                       EX_BANG|EX_FILE1|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_changes,                "changes",      ex_changes,
-                       TRLBAR|CMDWIN,
+EXCMD(CMD_changes,             "changes",      ex_changes,
+                       EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_checkpath,      "checkpath",    ex_checkpath,
-                       TRLBAR|BANG|CMDWIN,
+EXCMD(CMD_checkpath,   "checkpath",    ex_checkpath,
+                       EX_TRLBAR|EX_BANG|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_checktime,      "checktime",    ex_checktime,
-                       RANGE|BUFNAME|COUNT|EXTRA|TRLBAR,
+EXCMD(CMD_checktime,   "checktime",    ex_checktime,
+                       EX_RANGE|EX_BUFNAME|EX_COUNT|EX_EXTRA|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_chistory,       "chistory",     qf_history,
-                       RANGE|COUNT|TRLBAR,
+EXCMD(CMD_chistory,    "chistory",     qf_history,
+                       EX_RANGE|EX_COUNT|EX_TRLBAR,
                        ADDR_UNSIGNED),
-EX(CMD_clist,          "clist",        qf_list,
-                       BANG|EXTRA|TRLBAR|CMDWIN,
+EXCMD(CMD_clist,               "clist",        qf_list,
+                       EX_BANG|EX_EXTRA|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_clast,          "clast",        ex_cc,
-                       RANGE|COUNT|TRLBAR|BANG,
+EXCMD(CMD_clast,               "clast",        ex_cc,
+                       EX_RANGE|EX_COUNT|EX_TRLBAR|EX_BANG,
                        ADDR_UNSIGNED),
-EX(CMD_close,          "close",        ex_close,
-                       BANG|RANGE|COUNT|TRLBAR|CMDWIN,
+EXCMD(CMD_close,               "close",        ex_close,
+                       EX_BANG|EX_RANGE|EX_COUNT|EX_TRLBAR|EX_CMDWIN,
                        ADDR_WINDOWS),
-EX(CMD_clearjumps,     "clearjumps",   ex_clearjumps,
-                       TRLBAR|CMDWIN,
+EXCMD(CMD_clearjumps,  "clearjumps",   ex_clearjumps,
+                       EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_cmap,           "cmap",         ex_map,
-                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_cmap,                "cmap",         ex_map,
+                       EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_cmapclear,      "cmapclear",    ex_mapclear,
-                       EXTRA|TRLBAR|CMDWIN,
+EXCMD(CMD_cmapclear,   "cmapclear",    ex_mapclear,
+                       EX_EXTRA|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_cmenu,          "cmenu",        ex_menu,
-                       RANGE|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_cmenu,               "cmenu",        ex_menu,
+                       EX_RANGE|EX_ZEROR|EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_OTHER),
-EX(CMD_cnext,          "cnext",        ex_cnext,
-                       RANGE|COUNT|TRLBAR|BANG,
+EXCMD(CMD_cnext,               "cnext",        ex_cnext,
+                       EX_RANGE|EX_COUNT|EX_TRLBAR|EX_BANG,
                        ADDR_UNSIGNED),
-EX(CMD_cnewer,         "cnewer",       qf_age,
-                       RANGE|COUNT|TRLBAR,
+EXCMD(CMD_cnewer,              "cnewer",       qf_age,
+                       EX_RANGE|EX_COUNT|EX_TRLBAR,
                        ADDR_UNSIGNED),
-EX(CMD_cnfile,         "cnfile",       ex_cnext,
-                       RANGE|COUNT|TRLBAR|BANG,
+EXCMD(CMD_cnfile,              "cnfile",       ex_cnext,
+                       EX_RANGE|EX_COUNT|EX_TRLBAR|EX_BANG,
                        ADDR_UNSIGNED),
-EX(CMD_cnoremap,       "cnoremap",     ex_map,
-                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_cnoremap,    "cnoremap",     ex_map,
+                       EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_cnoreabbrev,    "cnoreabbrev",  ex_abbreviate,
-                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_cnoreabbrev, "cnoreabbrev",  ex_abbreviate,
+                       EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_cnoremenu,      "cnoremenu",    ex_menu,
-                       RANGE|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_cnoremenu,   "cnoremenu",    ex_menu,
+                       EX_RANGE|EX_ZEROR|EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_OTHER),
-EX(CMD_copy,           "copy",         ex_copymove,
-                       RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY,
+EXCMD(CMD_copy,                "copy",         ex_copymove,
+                       EX_RANGE|EX_WHOLEFOLD|EX_EXTRA|EX_TRLBAR|EX_CMDWIN|EX_MODIFY,
                        ADDR_LINES),
-EX(CMD_colder,         "colder",       qf_age,
-                       RANGE|COUNT|TRLBAR,
+EXCMD(CMD_colder,              "colder",       qf_age,
+                       EX_RANGE|EX_COUNT|EX_TRLBAR,
                        ADDR_UNSIGNED),
-EX(CMD_colorscheme,    "colorscheme",  ex_colorscheme,
-                       WORD1|TRLBAR|CMDWIN,
+EXCMD(CMD_colorscheme, "colorscheme",  ex_colorscheme,
+                       EX_WORD1|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_command,                "command",      ex_command,
-                       EXTRA|BANG|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_command,             "command",      ex_command,
+                       EX_EXTRA|EX_BANG|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_comclear,       "comclear",     ex_comclear,
-                       TRLBAR|CMDWIN,
+EXCMD(CMD_comclear,    "comclear",     ex_comclear,
+                       EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_compiler,       "compiler",     ex_compiler,
-                       BANG|TRLBAR|WORD1|CMDWIN,
+EXCMD(CMD_compiler,    "compiler",     ex_compiler,
+                       EX_BANG|EX_TRLBAR|EX_WORD1|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_continue,       "continue",     ex_continue,
-                       TRLBAR|SBOXOK|CMDWIN,
+EXCMD(CMD_continue,    "continue",     ex_continue,
+                       EX_TRLBAR|EX_SBOXOK|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_confirm,                "confirm",      ex_wrongmodifier,
-                       NEEDARG|EXTRA|NOTRLCOM|CMDWIN,
+EXCMD(CMD_confirm,             "confirm",      ex_wrongmodifier,
+                       EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_const,          "const",        ex_const,
-                       EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
+EXCMD(CMD_const,               "const",        ex_const,
+                       EX_EXTRA|EX_NOTRLCOM|EX_SBOXOK|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_copen,          "copen",        ex_copen,
-                       RANGE|COUNT|TRLBAR,
+EXCMD(CMD_copen,               "copen",        ex_copen,
+                       EX_RANGE|EX_COUNT|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_cprevious,      "cprevious",    ex_cnext,
-                       RANGE|COUNT|TRLBAR|BANG,
+EXCMD(CMD_cprevious,   "cprevious",    ex_cnext,
+                       EX_RANGE|EX_COUNT|EX_TRLBAR|EX_BANG,
                        ADDR_UNSIGNED),
-EX(CMD_cpfile,         "cpfile",       ex_cnext,
-                       RANGE|COUNT|TRLBAR|BANG,
+EXCMD(CMD_cpfile,              "cpfile",       ex_cnext,
+                       EX_RANGE|EX_COUNT|EX_TRLBAR|EX_BANG,
                        ADDR_OTHER),
-EX(CMD_cquit,          "cquit",        ex_cquit,
-                       TRLBAR|BANG,
+EXCMD(CMD_cquit,               "cquit",        ex_cquit,
+                       EX_TRLBAR|EX_BANG,
                        ADDR_NONE),
-EX(CMD_crewind,                "crewind",      ex_cc,
-                       RANGE|COUNT|TRLBAR|BANG,
+EXCMD(CMD_crewind,             "crewind",      ex_cc,
+                       EX_RANGE|EX_COUNT|EX_TRLBAR|EX_BANG,
                        ADDR_UNSIGNED),
-EX(CMD_cscope,         "cscope",       ex_cscope,
-                       EXTRA|NOTRLCOM|XFILE,
+EXCMD(CMD_cscope,              "cscope",       ex_cscope,
+                       EX_EXTRA|EX_NOTRLCOM|EX_XFILE,
                        ADDR_NONE),
-EX(CMD_cstag,          "cstag",        ex_cstag,
-                       BANG|TRLBAR|WORD1,
+EXCMD(CMD_cstag,               "cstag",        ex_cstag,
+                       EX_BANG|EX_TRLBAR|EX_WORD1,
                        ADDR_NONE),
-EX(CMD_cunmap,         "cunmap",       ex_unmap,
-                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_cunmap,              "cunmap",       ex_unmap,
+                       EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_cunabbrev,      "cunabbrev",    ex_abbreviate,
-                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_cunabbrev,   "cunabbrev",    ex_abbreviate,
+                       EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_cunmenu,                "cunmenu",      ex_menu,
-                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_cunmenu,             "cunmenu",      ex_menu,
+                       EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_cwindow,                "cwindow",      ex_cwindow,
-                       RANGE|COUNT|TRLBAR,
+EXCMD(CMD_cwindow,             "cwindow",      ex_cwindow,
+                       EX_RANGE|EX_COUNT|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_delete,         "delete",       ex_operators,
-                       RANGE|WHOLEFOLD|REGSTR|COUNT|TRLBAR|CMDWIN|MODIFY,
+EXCMD(CMD_delete,              "delete",       ex_operators,
+                       EX_RANGE|EX_WHOLEFOLD|EX_REGSTR|EX_COUNT|EX_TRLBAR|EX_CMDWIN|EX_MODIFY,
                        ADDR_LINES),
-EX(CMD_delmarks,       "delmarks",     ex_delmarks,
-                       BANG|EXTRA|TRLBAR|CMDWIN,
+EXCMD(CMD_delmarks,    "delmarks",     ex_delmarks,
+                       EX_BANG|EX_EXTRA|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_debug,          "debug",        ex_debug,
-                       NEEDARG|EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
+EXCMD(CMD_debug,               "debug",        ex_debug,
+                       EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM|EX_SBOXOK|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_debuggreedy,    "debuggreedy",  ex_debuggreedy,
-                       RANGE|ZEROR|TRLBAR|CMDWIN,
+EXCMD(CMD_debuggreedy, "debuggreedy",  ex_debuggreedy,
+                       EX_RANGE|EX_ZEROR|EX_TRLBAR|EX_CMDWIN,
                        ADDR_OTHER),
-EX(CMD_delcommand,     "delcommand",   ex_delcommand,
-                       NEEDARG|WORD1|TRLBAR|CMDWIN,
+EXCMD(CMD_delcommand,  "delcommand",   ex_delcommand,
+                       EX_NEEDARG|EX_WORD1|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_delfunction,    "delfunction",  ex_delfunction,
-                       BANG|NEEDARG|WORD1|CMDWIN,
+EXCMD(CMD_delfunction, "delfunction",  ex_delfunction,
+                       EX_BANG|EX_NEEDARG|EX_WORD1|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_display,                "display",      ex_display,
-                       EXTRA|NOTRLCOM|TRLBAR|SBOXOK|CMDWIN,
+EXCMD(CMD_display,             "display",      ex_display,
+                       EX_EXTRA|EX_NOTRLCOM|EX_TRLBAR|EX_SBOXOK|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_diffupdate,     "diffupdate",   ex_diffupdate,
-                       BANG|TRLBAR,
+EXCMD(CMD_diffupdate,  "diffupdate",   ex_diffupdate,
+                       EX_BANG|EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_diffget,                "diffget",      ex_diffgetput,
-                       RANGE|EXTRA|TRLBAR|MODIFY,
+EXCMD(CMD_diffget,             "diffget",      ex_diffgetput,
+                       EX_RANGE|EX_EXTRA|EX_TRLBAR|EX_MODIFY,
                        ADDR_LINES),
-EX(CMD_diffoff,                "diffoff",      ex_diffoff,
-                       BANG|TRLBAR,
+EXCMD(CMD_diffoff,             "diffoff",      ex_diffoff,
+                       EX_BANG|EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_diffpatch,      "diffpatch",    ex_diffpatch,
-                       EXTRA|FILE1|TRLBAR|MODIFY,
+EXCMD(CMD_diffpatch,   "diffpatch",    ex_diffpatch,
+                       EX_EXTRA|EX_FILE1|EX_TRLBAR|EX_MODIFY,
                        ADDR_NONE),
-EX(CMD_diffput,                "diffput",      ex_diffgetput,
-                       RANGE|EXTRA|TRLBAR,
+EXCMD(CMD_diffput,             "diffput",      ex_diffgetput,
+                       EX_RANGE|EX_EXTRA|EX_TRLBAR,
                        ADDR_LINES),
-EX(CMD_diffsplit,      "diffsplit",    ex_diffsplit,
-                       EXTRA|FILE1|TRLBAR,
+EXCMD(CMD_diffsplit,   "diffsplit",    ex_diffsplit,
+                       EX_EXTRA|EX_FILE1|EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_diffthis,       "diffthis",     ex_diffthis,
-                       TRLBAR,
+EXCMD(CMD_diffthis,    "diffthis",     ex_diffthis,
+                       EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_digraphs,       "digraphs",     ex_digraphs,
-                       BANG|EXTRA|TRLBAR|CMDWIN,
+EXCMD(CMD_digraphs,    "digraphs",     ex_digraphs,
+                       EX_BANG|EX_EXTRA|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_djump,          "djump",        ex_findpat,
-                       BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA,
+EXCMD(CMD_djump,               "djump",        ex_findpat,
+                       EX_BANG|EX_RANGE|EX_DFLALL|EX_WHOLEFOLD|EX_EXTRA,
                        ADDR_LINES),
-EX(CMD_dlist,          "dlist",        ex_findpat,
-                       BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA|CMDWIN,
+EXCMD(CMD_dlist,               "dlist",        ex_findpat,
+                       EX_BANG|EX_RANGE|EX_DFLALL|EX_WHOLEFOLD|EX_EXTRA|EX_CMDWIN,
                        ADDR_LINES),
-EX(CMD_doautocmd,      "doautocmd",    ex_doautocmd,
-                       EXTRA|TRLBAR|CMDWIN,
+EXCMD(CMD_doautocmd,   "doautocmd",    ex_doautocmd,
+                       EX_EXTRA|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_doautoall,      "doautoall",    ex_doautoall,
-                       EXTRA|TRLBAR|CMDWIN,
+EXCMD(CMD_doautoall,   "doautoall",    ex_doautoall,
+                       EX_EXTRA|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_drop,           "drop",         ex_drop,
-                       FILES|EDITCMD|NEEDARG|ARGOPT|TRLBAR,
+EXCMD(CMD_drop,                "drop",         ex_drop,
+                       EX_FILES|EX_CMDARG|EX_NEEDARG|EX_ARGOPT|EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_dsearch,                "dsearch",      ex_findpat,
-                       BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA|CMDWIN,
+EXCMD(CMD_dsearch,             "dsearch",      ex_findpat,
+                       EX_BANG|EX_RANGE|EX_DFLALL|EX_WHOLEFOLD|EX_EXTRA|EX_CMDWIN,
                        ADDR_LINES),
-EX(CMD_dsplit,         "dsplit",       ex_findpat,
-                       BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA,
+EXCMD(CMD_dsplit,              "dsplit",       ex_findpat,
+                       EX_BANG|EX_RANGE|EX_DFLALL|EX_WHOLEFOLD|EX_EXTRA,
                        ADDR_LINES),
-EX(CMD_edit,           "edit",         ex_edit,
-                       BANG|FILE1|EDITCMD|ARGOPT|TRLBAR,
+EXCMD(CMD_edit,                "edit",         ex_edit,
+                       EX_BANG|EX_FILE1|EX_CMDARG|EX_ARGOPT|EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_earlier,                "earlier",      ex_later,
-                       TRLBAR|EXTRA|NOSPC|CMDWIN,
+EXCMD(CMD_earlier,             "earlier",      ex_later,
+                       EX_TRLBAR|EX_EXTRA|EX_NOSPC|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_echo,           "echo",         ex_echo,
-                       EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
+EXCMD(CMD_echo,                "echo",         ex_echo,
+                       EX_EXTRA|EX_NOTRLCOM|EX_SBOXOK|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_echoerr,                "echoerr",      ex_execute,
-                       EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
+EXCMD(CMD_echoerr,             "echoerr",      ex_execute,
+                       EX_EXTRA|EX_NOTRLCOM|EX_SBOXOK|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_echohl,         "echohl",       ex_echohl,
-                       EXTRA|TRLBAR|SBOXOK|CMDWIN,
+EXCMD(CMD_echohl,              "echohl",       ex_echohl,
+                       EX_EXTRA|EX_TRLBAR|EX_SBOXOK|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_echomsg,                "echomsg",      ex_execute,
-                       EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
+EXCMD(CMD_echomsg,             "echomsg",      ex_execute,
+                       EX_EXTRA|EX_NOTRLCOM|EX_SBOXOK|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_echon,          "echon",        ex_echo,
-                       EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
+EXCMD(CMD_echon,               "echon",        ex_echo,
+                       EX_EXTRA|EX_NOTRLCOM|EX_SBOXOK|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_else,           "else",         ex_else,
-                       TRLBAR|SBOXOK|CMDWIN,
+EXCMD(CMD_else,                "else",         ex_else,
+                       EX_TRLBAR|EX_SBOXOK|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_elseif,         "elseif",       ex_else,
-                       EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
+EXCMD(CMD_elseif,              "elseif",       ex_else,
+                       EX_EXTRA|EX_NOTRLCOM|EX_SBOXOK|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_emenu,          "emenu",        ex_emenu,
-                       NEEDARG|EXTRA|TRLBAR|NOTRLCOM|RANGE|CMDWIN,
+EXCMD(CMD_emenu,               "emenu",        ex_emenu,
+                       EX_NEEDARG|EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_RANGE|EX_CMDWIN,
                        ADDR_OTHER),
-EX(CMD_endif,          "endif",        ex_endif,
-                       TRLBAR|SBOXOK|CMDWIN,
+EXCMD(CMD_endif,               "endif",        ex_endif,
+                       EX_TRLBAR|EX_SBOXOK|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_endfunction,    "endfunction",  ex_endfunction,
-                       TRLBAR|CMDWIN,
+EXCMD(CMD_endfunction, "endfunction",  ex_endfunction,
+                       EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_endfor,         "endfor",       ex_endwhile,
-                       TRLBAR|SBOXOK|CMDWIN,
+EXCMD(CMD_endfor,              "endfor",       ex_endwhile,
+                       EX_TRLBAR|EX_SBOXOK|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_endtry,         "endtry",       ex_endtry,
-                       TRLBAR|SBOXOK|CMDWIN,
+EXCMD(CMD_endtry,              "endtry",       ex_endtry,
+                       EX_TRLBAR|EX_SBOXOK|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_endwhile,       "endwhile",     ex_endwhile,
-                       TRLBAR|SBOXOK|CMDWIN,
+EXCMD(CMD_endwhile,    "endwhile",     ex_endwhile,
+                       EX_TRLBAR|EX_SBOXOK|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_enew,           "enew",         ex_edit,
-                       BANG|TRLBAR,
+EXCMD(CMD_enew,                "enew",         ex_edit,
+                       EX_BANG|EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_ex,             "ex",           ex_edit,
-                       BANG|FILE1|EDITCMD|ARGOPT|TRLBAR,
+EXCMD(CMD_ex,          "ex",           ex_edit,
+                       EX_BANG|EX_FILE1|EX_CMDARG|EX_ARGOPT|EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_execute,                "execute",      ex_execute,
-                       EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
+EXCMD(CMD_execute,             "execute",      ex_execute,
+                       EX_EXTRA|EX_NOTRLCOM|EX_SBOXOK|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_exit,           "exit",         ex_exit,
-                       RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR|CMDWIN,
+EXCMD(CMD_exit,                "exit",         ex_exit,
+                       EX_RANGE|EX_WHOLEFOLD|EX_BANG|EX_FILE1|EX_ARGOPT|EX_DFLALL|EX_TRLBAR|EX_CMDWIN,
                        ADDR_LINES),
-EX(CMD_exusage,                "exusage",      ex_exusage,
-                       TRLBAR,
+EXCMD(CMD_exusage,             "exusage",      ex_exusage,
+                       EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_file,           "file",         ex_file,
-                       RANGE|ZEROR|BANG|FILE1|TRLBAR,
+EXCMD(CMD_file,                "file",         ex_file,
+                       EX_RANGE|EX_ZEROR|EX_BANG|EX_FILE1|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_files,          "files",        buflist_list,
-                       BANG|EXTRA|TRLBAR|CMDWIN,
+EXCMD(CMD_files,               "files",        buflist_list,
+                       EX_BANG|EX_EXTRA|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_filetype,       "filetype",     ex_filetype,
-                       EXTRA|TRLBAR|CMDWIN,
+EXCMD(CMD_filetype,    "filetype",     ex_filetype,
+                       EX_EXTRA|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_filter,         "filter",       ex_wrongmodifier,
-                       BANG|NEEDARG|EXTRA|NOTRLCOM,
+EXCMD(CMD_filter,              "filter",       ex_wrongmodifier,
+                       EX_BANG|EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM,
                        ADDR_NONE),
-EX(CMD_find,           "find",         ex_find,
-                       RANGE|BANG|FILE1|EDITCMD|ARGOPT|TRLBAR,
+EXCMD(CMD_find,                "find",         ex_find,
+                       EX_RANGE|EX_BANG|EX_FILE1|EX_CMDARG|EX_ARGOPT|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_finally,                "finally",      ex_finally,
-                       TRLBAR|SBOXOK|CMDWIN,
+EXCMD(CMD_finally,             "finally",      ex_finally,
+                       EX_TRLBAR|EX_SBOXOK|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_finish,         "finish",       ex_finish,
-                       TRLBAR|SBOXOK|CMDWIN,
+EXCMD(CMD_finish,              "finish",       ex_finish,
+                       EX_TRLBAR|EX_SBOXOK|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_first,          "first",        ex_rewind,
-                       EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR,
+EXCMD(CMD_first,               "first",        ex_rewind,
+                       EX_EXTRA|EX_BANG|EX_CMDARG|EX_ARGOPT|EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_fixdel,         "fixdel",       do_fixdel,
-                       TRLBAR|CMDWIN,
+EXCMD(CMD_fixdel,              "fixdel",       do_fixdel,
+                       EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_fold,           "fold",         ex_fold,
-                       RANGE|WHOLEFOLD|TRLBAR|SBOXOK|CMDWIN,
+EXCMD(CMD_fold,                "fold",         ex_fold,
+                       EX_RANGE|EX_WHOLEFOLD|EX_TRLBAR|EX_SBOXOK|EX_CMDWIN,
                        ADDR_LINES),
-EX(CMD_foldclose,      "foldclose",    ex_foldopen,
-                       RANGE|BANG|WHOLEFOLD|TRLBAR|SBOXOK|CMDWIN,
+EXCMD(CMD_foldclose,   "foldclose",    ex_foldopen,
+                       EX_RANGE|EX_BANG|EX_WHOLEFOLD|EX_TRLBAR|EX_SBOXOK|EX_CMDWIN,
                        ADDR_LINES),
-EX(CMD_folddoopen,     "folddoopen",   ex_folddo,
-                       RANGE|DFLALL|NEEDARG|EXTRA|NOTRLCOM,
+EXCMD(CMD_folddoopen,  "folddoopen",   ex_folddo,
+                       EX_RANGE|EX_DFLALL|EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM,
                        ADDR_LINES),
-EX(CMD_folddoclosed,   "folddoclosed", ex_folddo,
-                       RANGE|DFLALL|NEEDARG|EXTRA|NOTRLCOM,
+EXCMD(CMD_folddoclosed,        "folddoclosed", ex_folddo,
+                       EX_RANGE|EX_DFLALL|EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM,
                        ADDR_LINES),
-EX(CMD_foldopen,       "foldopen",     ex_foldopen,
-                       RANGE|BANG|WHOLEFOLD|TRLBAR|SBOXOK|CMDWIN,
+EXCMD(CMD_foldopen,    "foldopen",     ex_foldopen,
+                       EX_RANGE|EX_BANG|EX_WHOLEFOLD|EX_TRLBAR|EX_SBOXOK|EX_CMDWIN,
                        ADDR_LINES),
-EX(CMD_for,            "for",          ex_while,
-                       EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
+EXCMD(CMD_for,         "for",          ex_while,
+                       EX_EXTRA|EX_NOTRLCOM|EX_SBOXOK|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_function,       "function",     ex_function,
-                       EXTRA|BANG|SBOXOK|CMDWIN,
+EXCMD(CMD_function,    "function",     ex_function,
+                       EX_EXTRA|EX_BANG|EX_SBOXOK|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_global,         "global",       ex_global,
-                       RANGE|WHOLEFOLD|BANG|EXTRA|DFLALL|SBOXOK|CMDWIN,
+EXCMD(CMD_global,              "global",       ex_global,
+                       EX_RANGE|EX_WHOLEFOLD|EX_BANG|EX_EXTRA|EX_DFLALL|EX_SBOXOK|EX_CMDWIN,
                        ADDR_LINES),
-EX(CMD_goto,           "goto",         ex_goto,
-                       RANGE|COUNT|TRLBAR|SBOXOK|CMDWIN,
+EXCMD(CMD_goto,                "goto",         ex_goto,
+                       EX_RANGE|EX_COUNT|EX_TRLBAR|EX_SBOXOK|EX_CMDWIN,
                        ADDR_OTHER),
-EX(CMD_grep,           "grep",         ex_make,
-                       RANGE|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
+EXCMD(CMD_grep,                "grep",         ex_make,
+                       EX_RANGE|EX_BANG|EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM|EX_TRLBAR|EX_XFILE,
                        ADDR_OTHER),
-EX(CMD_grepadd,                "grepadd",      ex_make,
-                       RANGE|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
+EXCMD(CMD_grepadd,             "grepadd",      ex_make,
+                       EX_RANGE|EX_BANG|EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM|EX_TRLBAR|EX_XFILE,
                        ADDR_OTHER),
-EX(CMD_gui,            "gui",          ex_gui,
-                       BANG|FILES|EDITCMD|ARGOPT|TRLBAR|CMDWIN,
+EXCMD(CMD_gui,         "gui",          ex_gui,
+                       EX_BANG|EX_FILES|EX_CMDARG|EX_ARGOPT|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_gvim,           "gvim",         ex_gui,
-                       BANG|FILES|EDITCMD|ARGOPT|TRLBAR|CMDWIN,
+EXCMD(CMD_gvim,                "gvim",         ex_gui,
+                       EX_BANG|EX_FILES|EX_CMDARG|EX_ARGOPT|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_help,           "help",         ex_help,
-                       BANG|EXTRA|NOTRLCOM,
+EXCMD(CMD_help,                "help",         ex_help,
+                       EX_BANG|EX_EXTRA|EX_NOTRLCOM,
                        ADDR_NONE),
-EX(CMD_helpclose,      "helpclose",    ex_helpclose,
-                       RANGE|COUNT|TRLBAR,
+EXCMD(CMD_helpclose,   "helpclose",    ex_helpclose,
+                       EX_RANGE|EX_COUNT|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_helpfind,       "helpfind",     ex_helpfind,
-                       EXTRA|NOTRLCOM,
+EXCMD(CMD_helpfind,    "helpfind",     ex_helpfind,
+                       EX_EXTRA|EX_NOTRLCOM,
                        ADDR_NONE),
-EX(CMD_helpgrep,       "helpgrep",     ex_helpgrep,
-                       EXTRA|NOTRLCOM|NEEDARG,
+EXCMD(CMD_helpgrep,    "helpgrep",     ex_helpgrep,
+                       EX_EXTRA|EX_NOTRLCOM|EX_NEEDARG,
                        ADDR_NONE),
-EX(CMD_helptags,       "helptags",     ex_helptags,
-                       NEEDARG|FILES|TRLBAR|CMDWIN,
+EXCMD(CMD_helptags,    "helptags",     ex_helptags,
+                       EX_NEEDARG|EX_FILES|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_hardcopy,       "hardcopy",     ex_hardcopy,
-                       RANGE|COUNT|EXTRA|TRLBAR|DFLALL|BANG,
+EXCMD(CMD_hardcopy,    "hardcopy",     ex_hardcopy,
+                       EX_RANGE|EX_COUNT|EX_EXTRA|EX_TRLBAR|EX_DFLALL|EX_BANG,
                        ADDR_LINES),
-EX(CMD_highlight,      "highlight",    ex_highlight,
-                       BANG|EXTRA|TRLBAR|SBOXOK|CMDWIN,
+EXCMD(CMD_highlight,   "highlight",    ex_highlight,
+                       EX_BANG|EX_EXTRA|EX_TRLBAR|EX_SBOXOK|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_hide,           "hide",         ex_hide,
-                       BANG|RANGE|COUNT|EXTRA|TRLBAR,
+EXCMD(CMD_hide,                "hide",         ex_hide,
+                       EX_BANG|EX_RANGE|EX_COUNT|EX_EXTRA|EX_TRLBAR,
                        ADDR_WINDOWS),
-EX(CMD_history,                "history",      ex_history,
-                       EXTRA|TRLBAR|CMDWIN,
+EXCMD(CMD_history,             "history",      ex_history,
+                       EX_EXTRA|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_insert,         "insert",       ex_append,
-                       BANG|RANGE|TRLBAR|CMDWIN|MODIFY,
+EXCMD(CMD_insert,              "insert",       ex_append,
+                       EX_BANG|EX_RANGE|EX_TRLBAR|EX_CMDWIN|EX_MODIFY,
                        ADDR_LINES),
-EX(CMD_iabbrev,                "iabbrev",      ex_abbreviate,
-                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_iabbrev,             "iabbrev",      ex_abbreviate,
+                       EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_iabclear,       "iabclear",     ex_abclear,
-                       EXTRA|TRLBAR|CMDWIN,
+EXCMD(CMD_iabclear,    "iabclear",     ex_abclear,
+                       EX_EXTRA|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_if,             "if",           ex_if,
-                       EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
+EXCMD(CMD_if,          "if",           ex_if,
+                       EX_EXTRA|EX_NOTRLCOM|EX_SBOXOK|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_ijump,          "ijump",        ex_findpat,
-                       BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA,
+EXCMD(CMD_ijump,               "ijump",        ex_findpat,
+                       EX_BANG|EX_RANGE|EX_DFLALL|EX_WHOLEFOLD|EX_EXTRA,
                        ADDR_LINES),
-EX(CMD_ilist,          "ilist",        ex_findpat,
-                       BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA|CMDWIN,
+EXCMD(CMD_ilist,               "ilist",        ex_findpat,
+                       EX_BANG|EX_RANGE|EX_DFLALL|EX_WHOLEFOLD|EX_EXTRA|EX_CMDWIN,
                        ADDR_LINES),
-EX(CMD_imap,           "imap",         ex_map,
-                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_imap,                "imap",         ex_map,
+                       EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_imapclear,      "imapclear",    ex_mapclear,
-                       EXTRA|TRLBAR|CMDWIN,
+EXCMD(CMD_imapclear,   "imapclear",    ex_mapclear,
+                       EX_EXTRA|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_imenu,          "imenu",        ex_menu,
-                       RANGE|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_imenu,               "imenu",        ex_menu,
+                       EX_RANGE|EX_ZEROR|EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_OTHER),
-EX(CMD_inoremap,       "inoremap",     ex_map,
-                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_inoremap,    "inoremap",     ex_map,
+                       EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_inoreabbrev,    "inoreabbrev",  ex_abbreviate,
-                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_inoreabbrev, "inoreabbrev",  ex_abbreviate,
+                       EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_inoremenu,      "inoremenu",    ex_menu,
-                       RANGE|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_inoremenu,   "inoremenu",    ex_menu,
+                       EX_RANGE|EX_ZEROR|EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_OTHER),
-EX(CMD_intro,          "intro",        ex_intro,
-                       TRLBAR|CMDWIN,
+EXCMD(CMD_intro,               "intro",        ex_intro,
+                       EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_isearch,                "isearch",      ex_findpat,
-                       BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA|CMDWIN,
+EXCMD(CMD_isearch,             "isearch",      ex_findpat,
+                       EX_BANG|EX_RANGE|EX_DFLALL|EX_WHOLEFOLD|EX_EXTRA|EX_CMDWIN,
                        ADDR_LINES),
-EX(CMD_isplit,         "isplit",       ex_findpat,
-                       BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA,
+EXCMD(CMD_isplit,              "isplit",       ex_findpat,
+                       EX_BANG|EX_RANGE|EX_DFLALL|EX_WHOLEFOLD|EX_EXTRA,
                        ADDR_LINES),
-EX(CMD_iunmap,         "iunmap",       ex_unmap,
-                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_iunmap,              "iunmap",       ex_unmap,
+                       EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_iunabbrev,      "iunabbrev",    ex_abbreviate,
-                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_iunabbrev,   "iunabbrev",    ex_abbreviate,
+                       EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_iunmenu,                "iunmenu",      ex_menu,
-                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_iunmenu,             "iunmenu",      ex_menu,
+                       EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_join,           "join",         ex_join,
-                       BANG|RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|MODIFY,
+EXCMD(CMD_join,                "join",         ex_join,
+                       EX_BANG|EX_RANGE|EX_WHOLEFOLD|EX_COUNT|EX_FLAGS|EX_TRLBAR|EX_CMDWIN|EX_MODIFY,
                        ADDR_LINES),
-EX(CMD_jumps,          "jumps",        ex_jumps,
-                       TRLBAR|CMDWIN,
+EXCMD(CMD_jumps,               "jumps",        ex_jumps,
+                       EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_k,              "k",            ex_mark,
-                       RANGE|WORD1|TRLBAR|SBOXOK|CMDWIN,
+EXCMD(CMD_k,           "k",            ex_mark,
+                       EX_RANGE|EX_WORD1|EX_TRLBAR|EX_SBOXOK|EX_CMDWIN,
                        ADDR_LINES),
-EX(CMD_keepmarks,      "keepmarks",    ex_wrongmodifier,
-                       NEEDARG|EXTRA|NOTRLCOM,
+EXCMD(CMD_keepmarks,   "keepmarks",    ex_wrongmodifier,
+                       EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM,
                        ADDR_NONE),
-EX(CMD_keepjumps,      "keepjumps",    ex_wrongmodifier,
-                       NEEDARG|EXTRA|NOTRLCOM,
+EXCMD(CMD_keepjumps,   "keepjumps",    ex_wrongmodifier,
+                       EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM,
                        ADDR_NONE),
-EX(CMD_keeppatterns,   "keeppatterns", ex_wrongmodifier,
-                       NEEDARG|EXTRA|NOTRLCOM,
+EXCMD(CMD_keeppatterns,        "keeppatterns", ex_wrongmodifier,
+                       EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM,
                        ADDR_NONE),
-EX(CMD_keepalt,                "keepalt",      ex_wrongmodifier,
-                       NEEDARG|EXTRA|NOTRLCOM,
+EXCMD(CMD_keepalt,             "keepalt",      ex_wrongmodifier,
+                       EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM,
                        ADDR_NONE),
-EX(CMD_list,           "list",         ex_print,
-                       RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN,
+EXCMD(CMD_list,                "list",         ex_print,
+                       EX_RANGE|EX_WHOLEFOLD|EX_COUNT|EX_FLAGS|EX_TRLBAR|EX_CMDWIN,
                        ADDR_LINES),
-EX(CMD_lNext,          "lNext",        ex_cnext,
-                       RANGE|COUNT|TRLBAR|BANG,
+EXCMD(CMD_lNext,               "lNext",        ex_cnext,
+                       EX_RANGE|EX_COUNT|EX_TRLBAR|EX_BANG,
                        ADDR_UNSIGNED),
-EX(CMD_lNfile,         "lNfile",       ex_cnext,
-                       RANGE|COUNT|TRLBAR|BANG,
+EXCMD(CMD_lNfile,              "lNfile",       ex_cnext,
+                       EX_RANGE|EX_COUNT|EX_TRLBAR|EX_BANG,
                        ADDR_UNSIGNED),
-EX(CMD_last,           "last",         ex_last,
-                       EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR,
+EXCMD(CMD_last,                "last",         ex_last,
+                       EX_EXTRA|EX_BANG|EX_CMDARG|EX_ARGOPT|EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_labove,         "labove",       ex_cbelow,
-                       RANGE|COUNT|TRLBAR,
+EXCMD(CMD_labove,              "labove",       ex_cbelow,
+                       EX_RANGE|EX_COUNT|EX_TRLBAR,
                        ADDR_UNSIGNED),
-EX(CMD_language,       "language",     ex_language,
-                       EXTRA|TRLBAR|CMDWIN,
+EXCMD(CMD_language,    "language",     ex_language,
+                       EX_EXTRA|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_laddexpr,       "laddexpr",     ex_cexpr,
-                       NEEDARG|WORD1|NOTRLCOM|TRLBAR,
+EXCMD(CMD_laddexpr,    "laddexpr",     ex_cexpr,
+                       EX_NEEDARG|EX_WORD1|EX_NOTRLCOM|EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_laddbuffer,     "laddbuffer",   ex_cbuffer,
-                       RANGE|WORD1|TRLBAR,
+EXCMD(CMD_laddbuffer,  "laddbuffer",   ex_cbuffer,
+                       EX_RANGE|EX_WORD1|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_laddfile,       "laddfile",     ex_cfile,
-                       TRLBAR|FILE1,
+EXCMD(CMD_laddfile,    "laddfile",     ex_cfile,
+                       EX_TRLBAR|EX_FILE1,
                        ADDR_NONE),
-EX(CMD_lafter,         "lafter",       ex_cbelow,
-                       RANGE|COUNT|TRLBAR,
+EXCMD(CMD_lafter,              "lafter",       ex_cbelow,
+                       EX_RANGE|EX_COUNT|EX_TRLBAR,
                        ADDR_UNSIGNED),
-EX(CMD_later,          "later",        ex_later,
-                       TRLBAR|EXTRA|NOSPC|CMDWIN,
+EXCMD(CMD_later,               "later",        ex_later,
+                       EX_TRLBAR|EX_EXTRA|EX_NOSPC|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_lbuffer,                "lbuffer",      ex_cbuffer,
-                       BANG|RANGE|WORD1|TRLBAR,
+EXCMD(CMD_lbuffer,             "lbuffer",      ex_cbuffer,
+                       EX_BANG|EX_RANGE|EX_WORD1|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_lbefore,                "lbefore",      ex_cbelow,
-                       RANGE|COUNT|TRLBAR,
+EXCMD(CMD_lbefore,             "lbefore",      ex_cbelow,
+                       EX_RANGE|EX_COUNT|EX_TRLBAR,
                        ADDR_UNSIGNED),
-EX(CMD_lbelow,         "lbelow",       ex_cbelow,
-                       RANGE|COUNT|TRLBAR,
+EXCMD(CMD_lbelow,              "lbelow",       ex_cbelow,
+                       EX_RANGE|EX_COUNT|EX_TRLBAR,
                        ADDR_UNSIGNED),
-EX(CMD_lbottom,                "lbottom",      ex_cbottom,
-                       TRLBAR,
+EXCMD(CMD_lbottom,             "lbottom",      ex_cbottom,
+                       EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_lcd,            "lcd",          ex_cd,
-                       BANG|FILE1|TRLBAR|CMDWIN,
+EXCMD(CMD_lcd,         "lcd",          ex_cd,
+                       EX_BANG|EX_FILE1|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_lchdir,         "lchdir",       ex_cd,
-                       BANG|FILE1|TRLBAR|CMDWIN,
+EXCMD(CMD_lchdir,              "lchdir",       ex_cd,
+                       EX_BANG|EX_FILE1|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_lclose,         "lclose",       ex_cclose,
-                       RANGE|COUNT|TRLBAR,
+EXCMD(CMD_lclose,              "lclose",       ex_cclose,
+                       EX_RANGE|EX_COUNT|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_lcscope,                "lcscope",      ex_cscope,
-                       EXTRA|NOTRLCOM|XFILE,
+EXCMD(CMD_lcscope,             "lcscope",      ex_cscope,
+                       EX_EXTRA|EX_NOTRLCOM|EX_XFILE,
                        ADDR_NONE),
-EX(CMD_ldo,            "ldo",          ex_listdo,
-                       BANG|NEEDARG|EXTRA|NOTRLCOM|RANGE|DFLALL,
+EXCMD(CMD_ldo,         "ldo",          ex_listdo,
+                       EX_BANG|EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM|EX_RANGE|EX_DFLALL,
                        ADDR_QUICKFIX_VALID),
-EX(CMD_left,           "left",         ex_align,
-                       TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY,
+EXCMD(CMD_left,                "left",         ex_align,
+                       EX_TRLBAR|EX_RANGE|EX_WHOLEFOLD|EX_EXTRA|EX_CMDWIN|EX_MODIFY,
                        ADDR_LINES),
-EX(CMD_leftabove,      "leftabove",    ex_wrongmodifier,
-                       NEEDARG|EXTRA|NOTRLCOM,
+EXCMD(CMD_leftabove,   "leftabove",    ex_wrongmodifier,
+                       EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM,
                        ADDR_NONE),
-EX(CMD_let,            "let",          ex_let,
-                       EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
+EXCMD(CMD_let,         "let",          ex_let,
+                       EX_EXTRA|EX_NOTRLCOM|EX_SBOXOK|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_lexpr,          "lexpr",        ex_cexpr,
-                       NEEDARG|WORD1|NOTRLCOM|TRLBAR|BANG,
+EXCMD(CMD_lexpr,               "lexpr",        ex_cexpr,
+                       EX_NEEDARG|EX_WORD1|EX_NOTRLCOM|EX_TRLBAR|EX_BANG,
                        ADDR_NONE),
-EX(CMD_lfile,          "lfile",        ex_cfile,
-                       TRLBAR|FILE1|BANG,
+EXCMD(CMD_lfile,               "lfile",        ex_cfile,
+                       EX_TRLBAR|EX_FILE1|EX_BANG,
                        ADDR_NONE),
-EX(CMD_lfdo,           "lfdo",         ex_listdo,
-                       BANG|NEEDARG|EXTRA|NOTRLCOM|RANGE|DFLALL,
+EXCMD(CMD_lfdo,                "lfdo",         ex_listdo,
+                       EX_BANG|EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM|EX_RANGE|EX_DFLALL,
                        ADDR_QUICKFIX_VALID),
-EX(CMD_lfirst,         "lfirst",       ex_cc,
-                       RANGE|COUNT|TRLBAR|BANG,
+EXCMD(CMD_lfirst,              "lfirst",       ex_cc,
+                       EX_RANGE|EX_COUNT|EX_TRLBAR|EX_BANG,
                        ADDR_UNSIGNED),
-EX(CMD_lgetfile,       "lgetfile",     ex_cfile,
-                       TRLBAR|FILE1,
+EXCMD(CMD_lgetfile,    "lgetfile",     ex_cfile,
+                       EX_TRLBAR|EX_FILE1,
                        ADDR_NONE),
-EX(CMD_lgetbuffer,     "lgetbuffer",   ex_cbuffer,
-                       RANGE|WORD1|TRLBAR,
+EXCMD(CMD_lgetbuffer,  "lgetbuffer",   ex_cbuffer,
+                       EX_RANGE|EX_WORD1|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_lgetexpr,       "lgetexpr",     ex_cexpr,
-                       NEEDARG|WORD1|NOTRLCOM|TRLBAR,
+EXCMD(CMD_lgetexpr,    "lgetexpr",     ex_cexpr,
+                       EX_NEEDARG|EX_WORD1|EX_NOTRLCOM|EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_lgrep,          "lgrep",        ex_make,
-                       RANGE|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
+EXCMD(CMD_lgrep,               "lgrep",        ex_make,
+                       EX_RANGE|EX_BANG|EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM|EX_TRLBAR|EX_XFILE,
                        ADDR_OTHER),
-EX(CMD_lgrepadd,       "lgrepadd",     ex_make,
-                       RANGE|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
+EXCMD(CMD_lgrepadd,    "lgrepadd",     ex_make,
+                       EX_RANGE|EX_BANG|EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM|EX_TRLBAR|EX_XFILE,
                        ADDR_OTHER),
-EX(CMD_lhelpgrep,      "lhelpgrep",    ex_helpgrep,
-                       EXTRA|NOTRLCOM|NEEDARG,
+EXCMD(CMD_lhelpgrep,   "lhelpgrep",    ex_helpgrep,
+                       EX_EXTRA|EX_NOTRLCOM|EX_NEEDARG,
                        ADDR_NONE),
-EX(CMD_lhistory,       "lhistory",     qf_history,
-                       RANGE|COUNT|TRLBAR,
+EXCMD(CMD_lhistory,    "lhistory",     qf_history,
+                       EX_RANGE|EX_COUNT|EX_TRLBAR,
                        ADDR_UNSIGNED),
-EX(CMD_ll,             "ll",           ex_cc,
-                       RANGE|COUNT|TRLBAR|BANG,
+EXCMD(CMD_ll,          "ll",           ex_cc,
+                       EX_RANGE|EX_COUNT|EX_TRLBAR|EX_BANG,
                        ADDR_QUICKFIX),
-EX(CMD_llast,          "llast",        ex_cc,
-                       RANGE|COUNT|TRLBAR|BANG,
+EXCMD(CMD_llast,               "llast",        ex_cc,
+                       EX_RANGE|EX_COUNT|EX_TRLBAR|EX_BANG,
                        ADDR_UNSIGNED),
-EX(CMD_llist,          "llist",        qf_list,
-                       BANG|EXTRA|TRLBAR|CMDWIN,
+EXCMD(CMD_llist,               "llist",        qf_list,
+                       EX_BANG|EX_EXTRA|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_lmap,           "lmap",         ex_map,
-                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_lmap,                "lmap",         ex_map,
+                       EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_lmapclear,      "lmapclear",    ex_mapclear,
-                       EXTRA|TRLBAR|CMDWIN,
+EXCMD(CMD_lmapclear,   "lmapclear",    ex_mapclear,
+                       EX_EXTRA|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_lmake,          "lmake",        ex_make,
-                       BANG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
+EXCMD(CMD_lmake,               "lmake",        ex_make,
+                       EX_BANG|EX_EXTRA|EX_NOTRLCOM|EX_TRLBAR|EX_XFILE,
                        ADDR_NONE),
-EX(CMD_lnoremap,       "lnoremap",     ex_map,
-                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_lnoremap,    "lnoremap",     ex_map,
+                       EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_lnext,          "lnext",        ex_cnext,
-                       RANGE|COUNT|TRLBAR|BANG,
+EXCMD(CMD_lnext,               "lnext",        ex_cnext,
+                       EX_RANGE|EX_COUNT|EX_TRLBAR|EX_BANG,
                        ADDR_UNSIGNED),
-EX(CMD_lnewer,         "lnewer",       qf_age,
-                       RANGE|COUNT|TRLBAR,
+EXCMD(CMD_lnewer,              "lnewer",       qf_age,
+                       EX_RANGE|EX_COUNT|EX_TRLBAR,
                        ADDR_UNSIGNED),
-EX(CMD_lnfile,         "lnfile",       ex_cnext,
-                       RANGE|COUNT|TRLBAR|BANG,
+EXCMD(CMD_lnfile,              "lnfile",       ex_cnext,
+                       EX_RANGE|EX_COUNT|EX_TRLBAR|EX_BANG,
                        ADDR_UNSIGNED),
-EX(CMD_loadview,       "loadview",     ex_loadview,
-                       FILE1|TRLBAR,
+EXCMD(CMD_loadview,    "loadview",     ex_loadview,
+                       EX_FILE1|EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_loadkeymap,     "loadkeymap",   ex_loadkeymap,
-                       CMDWIN,
+EXCMD(CMD_loadkeymap,  "loadkeymap",   ex_loadkeymap,
+                       EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_lockmarks,      "lockmarks",    ex_wrongmodifier,
-                       NEEDARG|EXTRA|NOTRLCOM,
+EXCMD(CMD_lockmarks,   "lockmarks",    ex_wrongmodifier,
+                       EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM,
                        ADDR_NONE),
-EX(CMD_lockvar,                "lockvar",      ex_lockvar,
-                       BANG|EXTRA|NEEDARG|SBOXOK|CMDWIN,
+EXCMD(CMD_lockvar,             "lockvar",      ex_lockvar,
+                       EX_BANG|EX_EXTRA|EX_NEEDARG|EX_SBOXOK|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_lolder,         "lolder",       qf_age,
-                       RANGE|COUNT|TRLBAR,
+EXCMD(CMD_lolder,              "lolder",       qf_age,
+                       EX_RANGE|EX_COUNT|EX_TRLBAR,
                        ADDR_UNSIGNED),
-EX(CMD_lopen,          "lopen",        ex_copen,
-                       RANGE|COUNT|TRLBAR,
+EXCMD(CMD_lopen,               "lopen",        ex_copen,
+                       EX_RANGE|EX_COUNT|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_lprevious,      "lprevious",    ex_cnext,
-                       RANGE|COUNT|TRLBAR|BANG,
+EXCMD(CMD_lprevious,   "lprevious",    ex_cnext,
+                       EX_RANGE|EX_COUNT|EX_TRLBAR|EX_BANG,
                        ADDR_UNSIGNED),
-EX(CMD_lpfile,         "lpfile",       ex_cnext,
-                       RANGE|COUNT|TRLBAR|BANG,
+EXCMD(CMD_lpfile,              "lpfile",       ex_cnext,
+                       EX_RANGE|EX_COUNT|EX_TRLBAR|EX_BANG,
                        ADDR_OTHER),
-EX(CMD_lrewind,                "lrewind",      ex_cc,
-                       RANGE|COUNT|TRLBAR|BANG,
+EXCMD(CMD_lrewind,             "lrewind",      ex_cc,
+                       EX_RANGE|EX_COUNT|EX_TRLBAR|EX_BANG,
                        ADDR_UNSIGNED),
-EX(CMD_ltag,           "ltag", ex_tag,
-                       TRLBAR|BANG|WORD1,
+EXCMD(CMD_ltag,                "ltag", ex_tag,
+                       EX_TRLBAR|EX_BANG|EX_WORD1,
                        ADDR_NONE),
-EX(CMD_lunmap,         "lunmap",       ex_unmap,
-                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_lunmap,              "lunmap",       ex_unmap,
+                       EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_lua,            "lua",          ex_lua,
-                       RANGE|EXTRA|NEEDARG|CMDWIN|RESTRICT,
+EXCMD(CMD_lua,         "lua",          ex_lua,
+                       EX_RANGE|EX_EXTRA|EX_NEEDARG|EX_CMDWIN|EX_RESTRICT,
                        ADDR_LINES),
-EX(CMD_luado,          "luado",        ex_luado,
-                       RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN|RESTRICT,
+EXCMD(CMD_luado,               "luado",        ex_luado,
+                       EX_RANGE|EX_DFLALL|EX_EXTRA|EX_NEEDARG|EX_CMDWIN|EX_RESTRICT,
                        ADDR_LINES),
-EX(CMD_luafile,                "luafile",      ex_luafile,
-                       RANGE|FILE1|NEEDARG|CMDWIN|RESTRICT,
+EXCMD(CMD_luafile,             "luafile",      ex_luafile,
+                       EX_RANGE|EX_FILE1|EX_NEEDARG|EX_CMDWIN|EX_RESTRICT,
                        ADDR_LINES),
-EX(CMD_lvimgrep,       "lvimgrep",     ex_vimgrep,
-                       RANGE|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
+EXCMD(CMD_lvimgrep,    "lvimgrep",     ex_vimgrep,
+                       EX_RANGE|EX_BANG|EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM|EX_TRLBAR|EX_XFILE,
                        ADDR_OTHER),
-EX(CMD_lvimgrepadd,    "lvimgrepadd",  ex_vimgrep,
-                       RANGE|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
+EXCMD(CMD_lvimgrepadd, "lvimgrepadd",  ex_vimgrep,
+                       EX_RANGE|EX_BANG|EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM|EX_TRLBAR|EX_XFILE,
                        ADDR_OTHER),
-EX(CMD_lwindow,                "lwindow",      ex_cwindow,
-                       RANGE|COUNT|TRLBAR,
+EXCMD(CMD_lwindow,             "lwindow",      ex_cwindow,
+                       EX_RANGE|EX_COUNT|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_ls,             "ls",           buflist_list,
-                       BANG|EXTRA|TRLBAR|CMDWIN,
+EXCMD(CMD_ls,          "ls",           buflist_list,
+                       EX_BANG|EX_EXTRA|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_move,           "move",         ex_copymove,
-                       RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY,
+EXCMD(CMD_move,                "move",         ex_copymove,
+                       EX_RANGE|EX_WHOLEFOLD|EX_EXTRA|EX_TRLBAR|EX_CMDWIN|EX_MODIFY,
                        ADDR_LINES),
-EX(CMD_mark,           "mark",         ex_mark,
-                       RANGE|WORD1|TRLBAR|SBOXOK|CMDWIN,
+EXCMD(CMD_mark,                "mark",         ex_mark,
+                       EX_RANGE|EX_WORD1|EX_TRLBAR|EX_SBOXOK|EX_CMDWIN,
                        ADDR_LINES),
-EX(CMD_make,           "make",         ex_make,
-                       BANG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
+EXCMD(CMD_make,                "make",         ex_make,
+                       EX_BANG|EX_EXTRA|EX_NOTRLCOM|EX_TRLBAR|EX_XFILE,
                        ADDR_NONE),
-EX(CMD_map,            "map",          ex_map,
-                       BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_map,         "map",          ex_map,
+                       EX_BANG|EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_mapclear,       "mapclear",     ex_mapclear,
-                       EXTRA|BANG|TRLBAR|CMDWIN,
+EXCMD(CMD_mapclear,    "mapclear",     ex_mapclear,
+                       EX_EXTRA|EX_BANG|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_marks,          "marks",        do_marks,
-                       EXTRA|TRLBAR|CMDWIN,
+EXCMD(CMD_marks,               "marks",        do_marks,
+                       EX_EXTRA|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_match,          "match",        ex_match,
-                       RANGE|EXTRA|CMDWIN,
+EXCMD(CMD_match,               "match",        ex_match,
+                       EX_RANGE|EX_EXTRA|EX_CMDWIN,
                        ADDR_OTHER),
-EX(CMD_menu,           "menu",         ex_menu,
-                       RANGE|ZEROR|BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_menu,                "menu",         ex_menu,
+                       EX_RANGE|EX_ZEROR|EX_BANG|EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_OTHER),
-EX(CMD_menutranslate,  "menutranslate", ex_menutranslate,
-                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_menutranslate,       "menutranslate", ex_menutranslate,
+                       EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_messages,       "messages",     ex_messages,
-                       EXTRA|TRLBAR|RANGE|CMDWIN,
+EXCMD(CMD_messages,    "messages",     ex_messages,
+                       EX_EXTRA|EX_TRLBAR|EX_RANGE|EX_CMDWIN,
                        ADDR_OTHER),
-EX(CMD_mkexrc,         "mkexrc",       ex_mkrc,
-                       BANG|FILE1|TRLBAR|CMDWIN,
+EXCMD(CMD_mkexrc,              "mkexrc",       ex_mkrc,
+                       EX_BANG|EX_FILE1|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_mksession,      "mksession",    ex_mkrc,
-                       BANG|FILE1|TRLBAR,
+EXCMD(CMD_mksession,   "mksession",    ex_mkrc,
+                       EX_BANG|EX_FILE1|EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_mkspell,                "mkspell",      ex_mkspell,
-                       BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
+EXCMD(CMD_mkspell,             "mkspell",      ex_mkspell,
+                       EX_BANG|EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM|EX_TRLBAR|EX_XFILE,
                        ADDR_NONE),
-EX(CMD_mkvimrc,                "mkvimrc",      ex_mkrc,
-                       BANG|FILE1|TRLBAR|CMDWIN,
+EXCMD(CMD_mkvimrc,             "mkvimrc",      ex_mkrc,
+                       EX_BANG|EX_FILE1|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_mkview,         "mkview",       ex_mkrc,
-                       BANG|FILE1|TRLBAR,
+EXCMD(CMD_mkview,              "mkview",       ex_mkrc,
+                       EX_BANG|EX_FILE1|EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_mode,           "mode",         ex_mode,
-                       WORD1|TRLBAR|CMDWIN,
+EXCMD(CMD_mode,                "mode",         ex_mode,
+                       EX_WORD1|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_mzscheme,       "mzscheme",     ex_mzscheme,
-                       RANGE|EXTRA|DFLALL|NEEDARG|CMDWIN|SBOXOK|RESTRICT,
+EXCMD(CMD_mzscheme,    "mzscheme",     ex_mzscheme,
+                       EX_RANGE|EX_EXTRA|EX_DFLALL|EX_NEEDARG|EX_CMDWIN|EX_SBOXOK|EX_RESTRICT,
                        ADDR_LINES),
-EX(CMD_mzfile,         "mzfile",       ex_mzfile,
-                       RANGE|FILE1|NEEDARG|CMDWIN|RESTRICT,
+EXCMD(CMD_mzfile,              "mzfile",       ex_mzfile,
+                       EX_RANGE|EX_FILE1|EX_NEEDARG|EX_CMDWIN|EX_RESTRICT,
                        ADDR_LINES),
-EX(CMD_next,           "next",         ex_next,
-                       RANGE|BANG|FILES|EDITCMD|ARGOPT|TRLBAR,
+EXCMD(CMD_next,                "next",         ex_next,
+                       EX_RANGE|EX_BANG|EX_FILES|EX_CMDARG|EX_ARGOPT|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_nbkey,          "nbkey",        ex_nbkey,
-                       EXTRA|NEEDARG,
+EXCMD(CMD_nbkey,               "nbkey",        ex_nbkey,
+                       EX_EXTRA|EX_NEEDARG,
                        ADDR_NONE),
-EX(CMD_nbclose,                "nbclose",      ex_nbclose,
-                       TRLBAR|CMDWIN,
+EXCMD(CMD_nbclose,             "nbclose",      ex_nbclose,
+                       EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_nbstart,                "nbstart",      ex_nbstart,
-                       WORD1|TRLBAR|CMDWIN,
+EXCMD(CMD_nbstart,             "nbstart",      ex_nbstart,
+                       EX_WORD1|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_new,            "new",          ex_splitview,
-                       BANG|FILE1|RANGE|EDITCMD|ARGOPT|TRLBAR,
+EXCMD(CMD_new,         "new",          ex_splitview,
+                       EX_BANG|EX_FILE1|EX_RANGE|EX_CMDARG|EX_ARGOPT|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_nmap,           "nmap",         ex_map,
-                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_nmap,                "nmap",         ex_map,
+                       EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_nmapclear,      "nmapclear",    ex_mapclear,
-                       EXTRA|TRLBAR|CMDWIN,
+EXCMD(CMD_nmapclear,   "nmapclear",    ex_mapclear,
+                       EX_EXTRA|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_nmenu,          "nmenu",        ex_menu,
-                       RANGE|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_nmenu,               "nmenu",        ex_menu,
+                       EX_RANGE|EX_ZEROR|EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_OTHER),
-EX(CMD_nnoremap,       "nnoremap",     ex_map,
-                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_nnoremap,    "nnoremap",     ex_map,
+                       EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_nnoremenu,      "nnoremenu",    ex_menu,
-                       RANGE|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_nnoremenu,   "nnoremenu",    ex_menu,
+                       EX_RANGE|EX_ZEROR|EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_OTHER),
-EX(CMD_noremap,                "noremap",      ex_map,
-                       BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_noremap,             "noremap",      ex_map,
+                       EX_BANG|EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_noautocmd,      "noautocmd",    ex_wrongmodifier,
-                       NEEDARG|EXTRA|NOTRLCOM,
+EXCMD(CMD_noautocmd,   "noautocmd",    ex_wrongmodifier,
+                       EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM,
                        ADDR_NONE),
-EX(CMD_nohlsearch,     "nohlsearch",   ex_nohlsearch,
-                       TRLBAR|SBOXOK|CMDWIN,
+EXCMD(CMD_nohlsearch,  "nohlsearch",   ex_nohlsearch,
+                       EX_TRLBAR|EX_SBOXOK|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_noreabbrev,     "noreabbrev",   ex_abbreviate,
-                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_noreabbrev,  "noreabbrev",   ex_abbreviate,
+                       EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_noremenu,       "noremenu",     ex_menu,
-                       RANGE|ZEROR|BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_noremenu,    "noremenu",     ex_menu,
+                       EX_RANGE|EX_ZEROR|EX_BANG|EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_OTHER),
-EX(CMD_noswapfile,     "noswapfile",   ex_wrongmodifier,
-                       NEEDARG|EXTRA|NOTRLCOM,
+EXCMD(CMD_noswapfile,  "noswapfile",   ex_wrongmodifier,
+                       EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM,
                        ADDR_NONE),
-EX(CMD_normal,         "normal",       ex_normal,
-                       RANGE|BANG|EXTRA|NEEDARG|NOTRLCOM|USECTRLV|SBOXOK|CMDWIN,
+EXCMD(CMD_normal,              "normal",       ex_normal,
+                       EX_RANGE|EX_BANG|EX_EXTRA|EX_NEEDARG|EX_NOTRLCOM|EX_CTRLV|EX_SBOXOK|EX_CMDWIN,
                        ADDR_LINES),
-EX(CMD_number,         "number",       ex_print,
-                       RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN,
+EXCMD(CMD_number,              "number",       ex_print,
+                       EX_RANGE|EX_WHOLEFOLD|EX_COUNT|EX_FLAGS|EX_TRLBAR|EX_CMDWIN,
                        ADDR_LINES),
-EX(CMD_nunmap,         "nunmap",       ex_unmap,
-                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_nunmap,              "nunmap",       ex_unmap,
+                       EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_nunmenu,                "nunmenu",      ex_menu,
-                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_nunmenu,             "nunmenu",      ex_menu,
+                       EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_open,           "open",         ex_open,
-                       RANGE|BANG|EXTRA,
+EXCMD(CMD_open,                "open",         ex_open,
+                       EX_RANGE|EX_BANG|EX_EXTRA,
                        ADDR_LINES),
-EX(CMD_oldfiles,       "oldfiles",     ex_oldfiles,
-                       BANG|TRLBAR|SBOXOK|CMDWIN,
+EXCMD(CMD_oldfiles,    "oldfiles",     ex_oldfiles,
+                       EX_BANG|EX_TRLBAR|EX_SBOXOK|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_omap,           "omap",         ex_map,
-                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_omap,                "omap",         ex_map,
+                       EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_omapclear,      "omapclear",    ex_mapclear,
-                       EXTRA|TRLBAR|CMDWIN,
+EXCMD(CMD_omapclear,   "omapclear",    ex_mapclear,
+                       EX_EXTRA|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_omenu,          "omenu",        ex_menu,
-                       RANGE|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_omenu,               "omenu",        ex_menu,
+                       EX_RANGE|EX_ZEROR|EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_OTHER),
-EX(CMD_only,           "only",         ex_only,
-                       BANG|RANGE|COUNT|TRLBAR,
+EXCMD(CMD_only,                "only",         ex_only,
+                       EX_BANG|EX_RANGE|EX_COUNT|EX_TRLBAR,
                        ADDR_WINDOWS),
-EX(CMD_onoremap,       "onoremap",     ex_map,
-                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_onoremap,    "onoremap",     ex_map,
+                       EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_onoremenu,      "onoremenu",    ex_menu,
-                       RANGE|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_onoremenu,   "onoremenu",    ex_menu,
+                       EX_RANGE|EX_ZEROR|EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_OTHER),
-EX(CMD_options,                "options",      ex_options,
-                       TRLBAR,
+EXCMD(CMD_options,             "options",      ex_options,
+                       EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_ounmap,         "ounmap",       ex_unmap,
-                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_ounmap,              "ounmap",       ex_unmap,
+                       EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_ounmenu,                "ounmenu",      ex_menu,
-                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_ounmenu,             "ounmenu",      ex_menu,
+                       EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_ownsyntax,      "ownsyntax",    ex_ownsyntax,
-                       EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
+EXCMD(CMD_ownsyntax,   "ownsyntax",    ex_ownsyntax,
+                       EX_EXTRA|EX_NOTRLCOM|EX_SBOXOK|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_print,          "print",        ex_print,
-                       RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|SBOXOK,
+EXCMD(CMD_print,               "print",        ex_print,
+                       EX_RANGE|EX_WHOLEFOLD|EX_COUNT|EX_FLAGS|EX_TRLBAR|EX_CMDWIN|EX_SBOXOK,
                        ADDR_LINES),
-EX(CMD_packadd,                "packadd",      ex_packadd,
-                       BANG|FILE1|NEEDARG|TRLBAR|SBOXOK|CMDWIN,
+EXCMD(CMD_packadd,             "packadd",      ex_packadd,
+                       EX_BANG|EX_FILE1|EX_NEEDARG|EX_TRLBAR|EX_SBOXOK|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_packloadall,    "packloadall",  ex_packloadall,
-                       BANG|TRLBAR|SBOXOK|CMDWIN,
+EXCMD(CMD_packloadall, "packloadall",  ex_packloadall,
+                       EX_BANG|EX_TRLBAR|EX_SBOXOK|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_pclose,         "pclose",       ex_pclose,
-                       BANG|TRLBAR,
+EXCMD(CMD_pclose,              "pclose",       ex_pclose,
+                       EX_BANG|EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_perl,           "perl",         ex_perl,
-                       RANGE|EXTRA|DFLALL|NEEDARG|SBOXOK|CMDWIN,
+EXCMD(CMD_perl,                "perl",         ex_perl,
+                       EX_RANGE|EX_EXTRA|EX_DFLALL|EX_NEEDARG|EX_SBOXOK|EX_CMDWIN,
                        ADDR_LINES),
-EX(CMD_perldo,         "perldo",       ex_perldo,
-                       RANGE|EXTRA|DFLALL|NEEDARG|CMDWIN,
+EXCMD(CMD_perldo,              "perldo",       ex_perldo,
+                       EX_RANGE|EX_EXTRA|EX_DFLALL|EX_NEEDARG|EX_CMDWIN,
                        ADDR_LINES),
-EX(CMD_pedit,          "pedit",        ex_pedit,
-                       BANG|FILE1|EDITCMD|ARGOPT|TRLBAR,
+EXCMD(CMD_pedit,               "pedit",        ex_pedit,
+                       EX_BANG|EX_FILE1|EX_CMDARG|EX_ARGOPT|EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_pop,            "pop",          ex_tag,
-                       RANGE|BANG|COUNT|TRLBAR|ZEROR,
+EXCMD(CMD_pop,         "pop",          ex_tag,
+                       EX_RANGE|EX_BANG|EX_COUNT|EX_TRLBAR|EX_ZEROR,
                        ADDR_OTHER),
-EX(CMD_popup,          "popup",        ex_popup,
-                       NEEDARG|EXTRA|BANG|TRLBAR|NOTRLCOM|CMDWIN,
+EXCMD(CMD_popup,               "popup",        ex_popup,
+                       EX_NEEDARG|EX_EXTRA|EX_BANG|EX_TRLBAR|EX_NOTRLCOM|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_ppop,           "ppop",         ex_ptag,
-                       RANGE|BANG|COUNT|TRLBAR|ZEROR,
+EXCMD(CMD_ppop,                "ppop",         ex_ptag,
+                       EX_RANGE|EX_BANG|EX_COUNT|EX_TRLBAR|EX_ZEROR,
                        ADDR_OTHER),
-EX(CMD_preserve,       "preserve",     ex_preserve,
-                       TRLBAR,
+EXCMD(CMD_preserve,    "preserve",     ex_preserve,
+                       EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_previous,       "previous",     ex_previous,
-                       EXTRA|RANGE|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR,
+EXCMD(CMD_previous,    "previous",     ex_previous,
+                       EX_EXTRA|EX_RANGE|EX_COUNT|EX_BANG|EX_CMDARG|EX_ARGOPT|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_promptfind,     "promptfind",   gui_mch_find_dialog,
-                       EXTRA|NOTRLCOM|CMDWIN,
+EXCMD(CMD_promptfind,  "promptfind",   gui_mch_find_dialog,
+                       EX_EXTRA|EX_NOTRLCOM|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_promptrepl,     "promptrepl",   gui_mch_replace_dialog,
-                       EXTRA|NOTRLCOM|CMDWIN,
+EXCMD(CMD_promptrepl,  "promptrepl",   gui_mch_replace_dialog,
+                       EX_EXTRA|EX_NOTRLCOM|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_profile,                "profile",      ex_profile,
-                       BANG|EXTRA|TRLBAR|CMDWIN,
+EXCMD(CMD_profile,             "profile",      ex_profile,
+                       EX_BANG|EX_EXTRA|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_profdel,                "profdel",      ex_breakdel,
-                       EXTRA|TRLBAR|CMDWIN,
+EXCMD(CMD_profdel,             "profdel",      ex_breakdel,
+                       EX_EXTRA|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_psearch,                "psearch",      ex_psearch,
-                       BANG|RANGE|WHOLEFOLD|DFLALL|EXTRA,
+EXCMD(CMD_psearch,             "psearch",      ex_psearch,
+                       EX_BANG|EX_RANGE|EX_WHOLEFOLD|EX_DFLALL|EX_EXTRA,
                        ADDR_LINES),
-EX(CMD_ptag,           "ptag",         ex_ptag,
-                       RANGE|BANG|WORD1|TRLBAR|ZEROR,
+EXCMD(CMD_ptag,                "ptag",         ex_ptag,
+                       EX_RANGE|EX_BANG|EX_WORD1|EX_TRLBAR|EX_ZEROR,
                        ADDR_OTHER),
-EX(CMD_ptNext,         "ptNext",       ex_ptag,
-                       RANGE|BANG|TRLBAR|ZEROR,
+EXCMD(CMD_ptNext,              "ptNext",       ex_ptag,
+                       EX_RANGE|EX_BANG|EX_TRLBAR|EX_ZEROR,
                        ADDR_OTHER),
-EX(CMD_ptfirst,                "ptfirst",      ex_ptag,
-                       RANGE|BANG|TRLBAR|ZEROR,
+EXCMD(CMD_ptfirst,             "ptfirst",      ex_ptag,
+                       EX_RANGE|EX_BANG|EX_TRLBAR|EX_ZEROR,
                        ADDR_OTHER),
-EX(CMD_ptjump,         "ptjump",       ex_ptag,
-                       BANG|TRLBAR|WORD1,
+EXCMD(CMD_ptjump,              "ptjump",       ex_ptag,
+                       EX_BANG|EX_TRLBAR|EX_WORD1,
                        ADDR_NONE),
-EX(CMD_ptlast,         "ptlast",       ex_ptag,
-                       BANG|TRLBAR,
+EXCMD(CMD_ptlast,              "ptlast",       ex_ptag,
+                       EX_BANG|EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_ptnext,         "ptnext",       ex_ptag,
-                       RANGE|BANG|TRLBAR|ZEROR,
+EXCMD(CMD_ptnext,              "ptnext",       ex_ptag,
+                       EX_RANGE|EX_BANG|EX_TRLBAR|EX_ZEROR,
                        ADDR_OTHER),
-EX(CMD_ptprevious,     "ptprevious",   ex_ptag,
-                       RANGE|BANG|TRLBAR|ZEROR,
+EXCMD(CMD_ptprevious,  "ptprevious",   ex_ptag,
+                       EX_RANGE|EX_BANG|EX_TRLBAR|EX_ZEROR,
                        ADDR_OTHER),
-EX(CMD_ptrewind,       "ptrewind",     ex_ptag,
-                       RANGE|BANG|TRLBAR|ZEROR,
+EXCMD(CMD_ptrewind,    "ptrewind",     ex_ptag,
+                       EX_RANGE|EX_BANG|EX_TRLBAR|EX_ZEROR,
                        ADDR_OTHER),
-EX(CMD_ptselect,       "ptselect",     ex_ptag,
-                       BANG|TRLBAR|WORD1,
+EXCMD(CMD_ptselect,    "ptselect",     ex_ptag,
+                       EX_BANG|EX_TRLBAR|EX_WORD1,
                        ADDR_NONE),
-EX(CMD_put,            "put",          ex_put,
-                       RANGE|WHOLEFOLD|BANG|REGSTR|TRLBAR|ZEROR|CMDWIN|MODIFY,
+EXCMD(CMD_put,         "put",          ex_put,
+                       EX_RANGE|EX_WHOLEFOLD|EX_BANG|EX_REGSTR|EX_TRLBAR|EX_ZEROR|EX_CMDWIN|EX_MODIFY,
                        ADDR_LINES),
-EX(CMD_pwd,            "pwd",          ex_pwd,
-                       TRLBAR|CMDWIN,
+EXCMD(CMD_pwd,         "pwd",          ex_pwd,
+                       EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_python,         "python",       ex_python,
-                       RANGE|EXTRA|NEEDARG|CMDWIN|RESTRICT,
+EXCMD(CMD_python,              "python",       ex_python,
+                       EX_RANGE|EX_EXTRA|EX_NEEDARG|EX_CMDWIN|EX_RESTRICT,
                        ADDR_LINES),
-EX(CMD_pydo,           "pydo",         ex_pydo,
-                       RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN|RESTRICT,
+EXCMD(CMD_pydo,                "pydo",         ex_pydo,
+                       EX_RANGE|EX_DFLALL|EX_EXTRA|EX_NEEDARG|EX_CMDWIN|EX_RESTRICT,
                        ADDR_LINES),
-EX(CMD_pyfile,         "pyfile",       ex_pyfile,
-                       RANGE|FILE1|NEEDARG|CMDWIN|RESTRICT,
+EXCMD(CMD_pyfile,              "pyfile",       ex_pyfile,
+                       EX_RANGE|EX_FILE1|EX_NEEDARG|EX_CMDWIN|EX_RESTRICT,
                        ADDR_LINES),
-EX(CMD_py3,            "py3",          ex_py3,
-                       RANGE|EXTRA|NEEDARG|CMDWIN|RESTRICT,
+EXCMD(CMD_py3,         "py3",          ex_py3,
+                       EX_RANGE|EX_EXTRA|EX_NEEDARG|EX_CMDWIN|EX_RESTRICT,
                        ADDR_LINES),
-EX(CMD_py3do,          "py3do",        ex_py3do,
-                       RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN|RESTRICT,
+EXCMD(CMD_py3do,               "py3do",        ex_py3do,
+                       EX_RANGE|EX_DFLALL|EX_EXTRA|EX_NEEDARG|EX_CMDWIN|EX_RESTRICT,
                        ADDR_LINES),
-EX(CMD_python3,                "python3",      ex_py3,
-                       RANGE|EXTRA|NEEDARG|CMDWIN|RESTRICT,
+EXCMD(CMD_python3,             "python3",      ex_py3,
+                       EX_RANGE|EX_EXTRA|EX_NEEDARG|EX_CMDWIN|EX_RESTRICT,
                        ADDR_LINES),
-EX(CMD_py3file,                "py3file",      ex_py3file,
-                       RANGE|FILE1|NEEDARG|CMDWIN|RESTRICT,
+EXCMD(CMD_py3file,             "py3file",      ex_py3file,
+                       EX_RANGE|EX_FILE1|EX_NEEDARG|EX_CMDWIN|EX_RESTRICT,
                        ADDR_LINES),
-EX(CMD_pyx,            "pyx",          ex_pyx,
-                       RANGE|EXTRA|NEEDARG|CMDWIN|RESTRICT,
+EXCMD(CMD_pyx,         "pyx",          ex_pyx,
+                       EX_RANGE|EX_EXTRA|EX_NEEDARG|EX_CMDWIN|EX_RESTRICT,
                        ADDR_LINES),
-EX(CMD_pyxdo,          "pyxdo",        ex_pyxdo,
-                       RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN|RESTRICT,
+EXCMD(CMD_pyxdo,               "pyxdo",        ex_pyxdo,
+                       EX_RANGE|EX_DFLALL|EX_EXTRA|EX_NEEDARG|EX_CMDWIN|EX_RESTRICT,
                        ADDR_LINES),
-EX(CMD_pythonx,                "pythonx",      ex_pyx,
-                       RANGE|EXTRA|NEEDARG|CMDWIN|RESTRICT,
+EXCMD(CMD_pythonx,             "pythonx",      ex_pyx,
+                       EX_RANGE|EX_EXTRA|EX_NEEDARG|EX_CMDWIN|EX_RESTRICT,
                        ADDR_LINES),
-EX(CMD_pyxfile,                "pyxfile",      ex_pyxfile,
-                       RANGE|FILE1|NEEDARG|CMDWIN|RESTRICT,
+EXCMD(CMD_pyxfile,             "pyxfile",      ex_pyxfile,
+                       EX_RANGE|EX_FILE1|EX_NEEDARG|EX_CMDWIN|EX_RESTRICT,
                        ADDR_LINES),
-EX(CMD_quit,           "quit",         ex_quit,
-                       BANG|RANGE|COUNT|TRLBAR|CMDWIN,
+EXCMD(CMD_quit,                "quit",         ex_quit,
+                       EX_BANG|EX_RANGE|EX_COUNT|EX_TRLBAR|EX_CMDWIN,
                        ADDR_WINDOWS),
-EX(CMD_quitall,                "quitall",      ex_quit_all,
-                       BANG|TRLBAR,
+EXCMD(CMD_quitall,             "quitall",      ex_quit_all,
+                       EX_BANG|EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_qall,           "qall",         ex_quit_all,
-                       BANG|TRLBAR|CMDWIN,
+EXCMD(CMD_qall,                "qall",         ex_quit_all,
+                       EX_BANG|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_read,           "read",         ex_read,
-                       BANG|RANGE|WHOLEFOLD|FILE1|ARGOPT|TRLBAR|ZEROR|CMDWIN|MODIFY,
+EXCMD(CMD_read,                "read",         ex_read,
+                       EX_BANG|EX_RANGE|EX_WHOLEFOLD|EX_FILE1|EX_ARGOPT|EX_TRLBAR|EX_ZEROR|EX_CMDWIN|EX_MODIFY,
                        ADDR_LINES),
-EX(CMD_recover,                "recover",      ex_recover,
-                       BANG|FILE1|TRLBAR,
+EXCMD(CMD_recover,             "recover",      ex_recover,
+                       EX_BANG|EX_FILE1|EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_redo,           "redo",         ex_redo,
-                       TRLBAR|CMDWIN,
+EXCMD(CMD_redo,                "redo",         ex_redo,
+                       EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_redir,          "redir",        ex_redir,
-                       BANG|FILES|TRLBAR|CMDWIN,
+EXCMD(CMD_redir,               "redir",        ex_redir,
+                       EX_BANG|EX_FILES|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_redraw,         "redraw",       ex_redraw,
-                       BANG|TRLBAR|CMDWIN,
+EXCMD(CMD_redraw,              "redraw",       ex_redraw,
+                       EX_BANG|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_redrawstatus,   "redrawstatus", ex_redrawstatus,
-                       BANG|TRLBAR|CMDWIN,
+EXCMD(CMD_redrawstatus,        "redrawstatus", ex_redrawstatus,
+                       EX_BANG|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_redrawtabline,  "redrawtabline", ex_redrawtabline,
-                       TRLBAR|CMDWIN,
+EXCMD(CMD_redrawtabline,       "redrawtabline", ex_redrawtabline,
+                       EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_registers,      "registers",    ex_display,
-                       EXTRA|NOTRLCOM|TRLBAR|CMDWIN,
+EXCMD(CMD_registers,   "registers",    ex_display,
+                       EX_EXTRA|EX_NOTRLCOM|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_resize,         "resize",       ex_resize,
-                       RANGE|TRLBAR|WORD1|CMDWIN,
+EXCMD(CMD_resize,              "resize",       ex_resize,
+                       EX_RANGE|EX_TRLBAR|EX_WORD1|EX_CMDWIN,
                        ADDR_OTHER),
-EX(CMD_retab,          "retab",        ex_retab,
-                       TRLBAR|RANGE|WHOLEFOLD|DFLALL|BANG|WORD1|CMDWIN|MODIFY,
+EXCMD(CMD_retab,               "retab",        ex_retab,
+                       EX_TRLBAR|EX_RANGE|EX_WHOLEFOLD|EX_DFLALL|EX_BANG|EX_WORD1|EX_CMDWIN|EX_MODIFY,
                        ADDR_LINES),
-EX(CMD_return,         "return",       ex_return,
-                       EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
+EXCMD(CMD_return,              "return",       ex_return,
+                       EX_EXTRA|EX_NOTRLCOM|EX_SBOXOK|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_rewind,         "rewind",       ex_rewind,
-                       EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR,
+EXCMD(CMD_rewind,              "rewind",       ex_rewind,
+                       EX_EXTRA|EX_BANG|EX_CMDARG|EX_ARGOPT|EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_right,          "right",        ex_align,
-                       TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY,
+EXCMD(CMD_right,               "right",        ex_align,
+                       EX_TRLBAR|EX_RANGE|EX_WHOLEFOLD|EX_EXTRA|EX_CMDWIN|EX_MODIFY,
                        ADDR_LINES),
-EX(CMD_rightbelow,     "rightbelow",   ex_wrongmodifier,
-                       NEEDARG|EXTRA|NOTRLCOM,
+EXCMD(CMD_rightbelow,  "rightbelow",   ex_wrongmodifier,
+                       EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM,
                        ADDR_NONE),
-EX(CMD_runtime,                "runtime",      ex_runtime,
-                       BANG|NEEDARG|FILES|TRLBAR|SBOXOK|CMDWIN,
+EXCMD(CMD_runtime,             "runtime",      ex_runtime,
+                       EX_BANG|EX_NEEDARG|EX_FILES|EX_TRLBAR|EX_SBOXOK|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_ruby,           "ruby",         ex_ruby,
-                       RANGE|EXTRA|NEEDARG|CMDWIN|RESTRICT,
+EXCMD(CMD_ruby,                "ruby",         ex_ruby,
+                       EX_RANGE|EX_EXTRA|EX_NEEDARG|EX_CMDWIN|EX_RESTRICT,
                        ADDR_LINES),
-EX(CMD_rubydo,         "rubydo",       ex_rubydo,
-                       RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN|RESTRICT,
+EXCMD(CMD_rubydo,              "rubydo",       ex_rubydo,
+                       EX_RANGE|EX_DFLALL|EX_EXTRA|EX_NEEDARG|EX_CMDWIN|EX_RESTRICT,
                        ADDR_LINES),
-EX(CMD_rubyfile,       "rubyfile",     ex_rubyfile,
-                       RANGE|FILE1|NEEDARG|CMDWIN|RESTRICT,
+EXCMD(CMD_rubyfile,    "rubyfile",     ex_rubyfile,
+                       EX_RANGE|EX_FILE1|EX_NEEDARG|EX_CMDWIN|EX_RESTRICT,
                        ADDR_LINES),
-EX(CMD_rundo,          "rundo",        ex_rundo,
-                       NEEDARG|FILE1,
+EXCMD(CMD_rundo,               "rundo",        ex_rundo,
+                       EX_NEEDARG|EX_FILE1,
                        ADDR_NONE),
-EX(CMD_rviminfo,       "rviminfo",     ex_viminfo,
-                       BANG|FILE1|TRLBAR|CMDWIN,
+EXCMD(CMD_rviminfo,    "rviminfo",     ex_viminfo,
+                       EX_BANG|EX_FILE1|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_substitute,     "substitute",   do_sub,
-                       RANGE|WHOLEFOLD|EXTRA|CMDWIN,
+EXCMD(CMD_substitute,  "substitute",   do_sub,
+                       EX_RANGE|EX_WHOLEFOLD|EX_EXTRA|EX_CMDWIN,
                        ADDR_LINES),
-EX(CMD_sNext,          "sNext",        ex_previous,
-                       EXTRA|RANGE|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR,
+EXCMD(CMD_sNext,               "sNext",        ex_previous,
+                       EX_EXTRA|EX_RANGE|EX_COUNT|EX_BANG|EX_CMDARG|EX_ARGOPT|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_sargument,      "sargument",    ex_argument,
-                       BANG|RANGE|COUNT|EXTRA|EDITCMD|ARGOPT|TRLBAR,
+EXCMD(CMD_sargument,   "sargument",    ex_argument,
+                       EX_BANG|EX_RANGE|EX_COUNT|EX_EXTRA|EX_CMDARG|EX_ARGOPT|EX_TRLBAR,
                        ADDR_ARGUMENTS),
-EX(CMD_sall,           "sall",         ex_all,
-                       BANG|RANGE|COUNT|TRLBAR,
+EXCMD(CMD_sall,                "sall",         ex_all,
+                       EX_BANG|EX_RANGE|EX_COUNT|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_sandbox,                "sandbox",      ex_wrongmodifier,
-                       NEEDARG|EXTRA|NOTRLCOM,
+EXCMD(CMD_sandbox,             "sandbox",      ex_wrongmodifier,
+                       EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM,
                        ADDR_NONE),
-EX(CMD_saveas,         "saveas",       ex_write,
-                       BANG|FILE1|ARGOPT|CMDWIN|TRLBAR,
+EXCMD(CMD_saveas,              "saveas",       ex_write,
+                       EX_BANG|EX_FILE1|EX_ARGOPT|EX_CMDWIN|EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_sbuffer,                "sbuffer",      ex_buffer,
-                       BANG|RANGE|BUFNAME|BUFUNL|COUNT|EXTRA|EDITCMD|TRLBAR,
+EXCMD(CMD_sbuffer,             "sbuffer",      ex_buffer,
+                       EX_BANG|EX_RANGE|EX_BUFNAME|EX_BUFUNL|EX_COUNT|EX_EXTRA|EX_CMDARG|EX_TRLBAR,
                        ADDR_BUFFERS),
-EX(CMD_sbNext,         "sbNext",       ex_bprevious,
-                       RANGE|COUNT|EDITCMD|TRLBAR,
+EXCMD(CMD_sbNext,              "sbNext",       ex_bprevious,
+                       EX_RANGE|EX_COUNT|EX_CMDARG|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_sball,          "sball",        ex_buffer_all,
-                       RANGE|COUNT|EDITCMD|TRLBAR,
+EXCMD(CMD_sball,               "sball",        ex_buffer_all,
+                       EX_RANGE|EX_COUNT|EX_CMDARG|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_sbfirst,                "sbfirst",      ex_brewind,
-                       EDITCMD|TRLBAR,
+EXCMD(CMD_sbfirst,             "sbfirst",      ex_brewind,
+                       EX_CMDARG|EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_sblast,         "sblast",       ex_blast,
-                       EDITCMD|TRLBAR,
+EXCMD(CMD_sblast,              "sblast",       ex_blast,
+                       EX_CMDARG|EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_sbmodified,     "sbmodified",   ex_bmodified,
-                       RANGE|COUNT|EDITCMD|TRLBAR,
+EXCMD(CMD_sbmodified,  "sbmodified",   ex_bmodified,
+                       EX_RANGE|EX_COUNT|EX_CMDARG|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_sbnext,         "sbnext",       ex_bnext,
-                       RANGE|COUNT|EDITCMD|TRLBAR,
+EXCMD(CMD_sbnext,              "sbnext",       ex_bnext,
+                       EX_RANGE|EX_COUNT|EX_CMDARG|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_sbprevious,     "sbprevious",   ex_bprevious,
-                       RANGE|COUNT|EDITCMD|TRLBAR,
+EXCMD(CMD_sbprevious,  "sbprevious",   ex_bprevious,
+                       EX_RANGE|EX_COUNT|EX_CMDARG|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_sbrewind,       "sbrewind",     ex_brewind,
-                       EDITCMD|TRLBAR,
+EXCMD(CMD_sbrewind,    "sbrewind",     ex_brewind,
+                       EX_CMDARG|EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_scriptnames,    "scriptnames",  ex_scriptnames,
-                       BANG|RANGE|COUNT|TRLBAR|CMDWIN,
+EXCMD(CMD_scriptnames, "scriptnames",  ex_scriptnames,
+                       EX_BANG|EX_RANGE|EX_COUNT|EX_TRLBAR|EX_CMDWIN,
                        ADDR_OTHER),
-EX(CMD_scriptencoding, "scriptencoding", ex_scriptencoding,
-                       WORD1|TRLBAR|CMDWIN,
+EXCMD(CMD_scriptencoding,      "scriptencoding", ex_scriptencoding,
+                       EX_WORD1|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_scriptversion,  "scriptversion", ex_scriptversion,
-                       WORD1|TRLBAR|CMDWIN,
+EXCMD(CMD_scriptversion,       "scriptversion", ex_scriptversion,
+                       EX_WORD1|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_scscope,                "scscope",      ex_scscope,
-                       EXTRA|NOTRLCOM,
+EXCMD(CMD_scscope,             "scscope",      ex_scscope,
+                       EX_EXTRA|EX_NOTRLCOM,
                        ADDR_NONE),
-EX(CMD_set,            "set",          ex_set,
-                       TRLBAR|EXTRA|CMDWIN|SBOXOK,
+EXCMD(CMD_set,         "set",          ex_set,
+                       EX_TRLBAR|EX_EXTRA|EX_CMDWIN|EX_SBOXOK,
                        ADDR_NONE),
-EX(CMD_setfiletype,    "setfiletype",  ex_setfiletype,
-                       TRLBAR|EXTRA|NEEDARG|CMDWIN,
+EXCMD(CMD_setfiletype, "setfiletype",  ex_setfiletype,
+                       EX_TRLBAR|EX_EXTRA|EX_NEEDARG|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_setglobal,      "setglobal",    ex_set,
-                       TRLBAR|EXTRA|CMDWIN|SBOXOK,
+EXCMD(CMD_setglobal,   "setglobal",    ex_set,
+                       EX_TRLBAR|EX_EXTRA|EX_CMDWIN|EX_SBOXOK,
                        ADDR_NONE),
-EX(CMD_setlocal,       "setlocal",     ex_set,
-                       TRLBAR|EXTRA|CMDWIN|SBOXOK,
+EXCMD(CMD_setlocal,    "setlocal",     ex_set,
+                       EX_TRLBAR|EX_EXTRA|EX_CMDWIN|EX_SBOXOK,
                        ADDR_NONE),
-EX(CMD_sfind,          "sfind",        ex_splitview,
-                       BANG|FILE1|RANGE|EDITCMD|ARGOPT|TRLBAR,
+EXCMD(CMD_sfind,               "sfind",        ex_splitview,
+                       EX_BANG|EX_FILE1|EX_RANGE|EX_CMDARG|EX_ARGOPT|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_sfirst,         "sfirst",       ex_rewind,
-                       EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR,
+EXCMD(CMD_sfirst,              "sfirst",       ex_rewind,
+                       EX_EXTRA|EX_BANG|EX_CMDARG|EX_ARGOPT|EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_shell,          "shell",        ex_shell,
-                       TRLBAR|CMDWIN,
+EXCMD(CMD_shell,               "shell",        ex_shell,
+                       EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_simalt,         "simalt",       ex_simalt,
-                       NEEDARG|WORD1|TRLBAR|CMDWIN,
+EXCMD(CMD_simalt,              "simalt",       ex_simalt,
+                       EX_NEEDARG|EX_WORD1|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_sign,           "sign",         ex_sign,
-                       NEEDARG|RANGE|EXTRA|CMDWIN,
+EXCMD(CMD_sign,                "sign",         ex_sign,
+                       EX_NEEDARG|EX_RANGE|EX_EXTRA|EX_CMDWIN,
                        ADDR_OTHER),
-EX(CMD_silent,         "silent",       ex_wrongmodifier,
-                       NEEDARG|EXTRA|BANG|NOTRLCOM|SBOXOK|CMDWIN,
+EXCMD(CMD_silent,              "silent",       ex_wrongmodifier,
+                       EX_NEEDARG|EX_EXTRA|EX_BANG|EX_NOTRLCOM|EX_SBOXOK|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_sleep,          "sleep",        ex_sleep,
-                       RANGE|COUNT|EXTRA|TRLBAR|CMDWIN,
+EXCMD(CMD_sleep,               "sleep",        ex_sleep,
+                       EX_RANGE|EX_COUNT|EX_EXTRA|EX_TRLBAR|EX_CMDWIN,
                        ADDR_OTHER),
-EX(CMD_slast,          "slast",        ex_last,
-                       EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR,
+EXCMD(CMD_slast,               "slast",        ex_last,
+                       EX_EXTRA|EX_BANG|EX_CMDARG|EX_ARGOPT|EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_smagic,         "smagic",       ex_submagic,
-                       RANGE|WHOLEFOLD|EXTRA|CMDWIN,
+EXCMD(CMD_smagic,              "smagic",       ex_submagic,
+                       EX_RANGE|EX_WHOLEFOLD|EX_EXTRA|EX_CMDWIN,
                        ADDR_LINES),
-EX(CMD_smap,           "smap",         ex_map,
-                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_smap,                "smap",         ex_map,
+                       EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_smapclear,      "smapclear",    ex_mapclear,
-                       EXTRA|TRLBAR|CMDWIN,
+EXCMD(CMD_smapclear,   "smapclear",    ex_mapclear,
+                       EX_EXTRA|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_smenu,          "smenu",        ex_menu,
-                       RANGE|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_smenu,               "smenu",        ex_menu,
+                       EX_RANGE|EX_ZEROR|EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_OTHER),
-EX(CMD_snext,          "snext",        ex_next,
-                       RANGE|BANG|FILES|EDITCMD|ARGOPT|TRLBAR,
+EXCMD(CMD_snext,               "snext",        ex_next,
+                       EX_RANGE|EX_BANG|EX_FILES|EX_CMDARG|EX_ARGOPT|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_snomagic,       "snomagic",     ex_submagic,
-                       RANGE|WHOLEFOLD|EXTRA|CMDWIN,
+EXCMD(CMD_snomagic,    "snomagic",     ex_submagic,
+                       EX_RANGE|EX_WHOLEFOLD|EX_EXTRA|EX_CMDWIN,
                        ADDR_LINES),
-EX(CMD_snoremap,       "snoremap",     ex_map,
-                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_snoremap,    "snoremap",     ex_map,
+                       EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_snoremenu,      "snoremenu",    ex_menu,
-                       RANGE|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_snoremenu,   "snoremenu",    ex_menu,
+                       EX_RANGE|EX_ZEROR|EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_OTHER),
-EX(CMD_source,         "source",       ex_source,
-                       BANG|FILE1|TRLBAR|SBOXOK|CMDWIN,
+EXCMD(CMD_source,              "source",       ex_source,
+                       EX_BANG|EX_FILE1|EX_TRLBAR|EX_SBOXOK|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_sort,           "sort",         ex_sort,
-                       RANGE|DFLALL|WHOLEFOLD|BANG|EXTRA|NOTRLCOM|MODIFY,
+EXCMD(CMD_sort,                "sort",         ex_sort,
+                       EX_RANGE|EX_DFLALL|EX_WHOLEFOLD|EX_BANG|EX_EXTRA|EX_NOTRLCOM|EX_MODIFY,
                        ADDR_LINES),
-EX(CMD_split,          "split",        ex_splitview,
-                       BANG|FILE1|RANGE|EDITCMD|ARGOPT|TRLBAR,
+EXCMD(CMD_split,               "split",        ex_splitview,
+                       EX_BANG|EX_FILE1|EX_RANGE|EX_CMDARG|EX_ARGOPT|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_spellgood,      "spellgood",    ex_spell,
-                       BANG|RANGE|NEEDARG|EXTRA|TRLBAR,
+EXCMD(CMD_spellgood,   "spellgood",    ex_spell,
+                       EX_BANG|EX_RANGE|EX_NEEDARG|EX_EXTRA|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_spelldump,      "spelldump",    ex_spelldump,
-                       BANG|TRLBAR,
+EXCMD(CMD_spelldump,   "spelldump",    ex_spelldump,
+                       EX_BANG|EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_spellinfo,      "spellinfo",    ex_spellinfo,
-                       TRLBAR,
+EXCMD(CMD_spellinfo,   "spellinfo",    ex_spellinfo,
+                       EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_spellrepall,    "spellrepall",  ex_spellrepall,
-                       TRLBAR,
+EXCMD(CMD_spellrepall, "spellrepall",  ex_spellrepall,
+                       EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_spellundo,      "spellundo",    ex_spell,
-                       BANG|RANGE|NEEDARG|EXTRA|TRLBAR,
+EXCMD(CMD_spellundo,   "spellundo",    ex_spell,
+                       EX_BANG|EX_RANGE|EX_NEEDARG|EX_EXTRA|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_spellwrong,     "spellwrong",   ex_spell,
-                       BANG|RANGE|NEEDARG|EXTRA|TRLBAR,
+EXCMD(CMD_spellwrong,  "spellwrong",   ex_spell,
+                       EX_BANG|EX_RANGE|EX_NEEDARG|EX_EXTRA|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_sprevious,      "sprevious",    ex_previous,
-                       EXTRA|RANGE|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR,
+EXCMD(CMD_sprevious,   "sprevious",    ex_previous,
+                       EX_EXTRA|EX_RANGE|EX_COUNT|EX_BANG|EX_CMDARG|EX_ARGOPT|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_srewind,                "srewind",      ex_rewind,
-                       EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR,
+EXCMD(CMD_srewind,             "srewind",      ex_rewind,
+                       EX_EXTRA|EX_BANG|EX_CMDARG|EX_ARGOPT|EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_stop,           "stop",         ex_stop,
-                       TRLBAR|BANG|CMDWIN,
+EXCMD(CMD_stop,                "stop",         ex_stop,
+                       EX_TRLBAR|EX_BANG|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_stag,           "stag",         ex_stag,
-                       RANGE|BANG|WORD1|TRLBAR|ZEROR,
+EXCMD(CMD_stag,                "stag",         ex_stag,
+                       EX_RANGE|EX_BANG|EX_WORD1|EX_TRLBAR|EX_ZEROR,
                        ADDR_OTHER),
-EX(CMD_startinsert,    "startinsert",  ex_startinsert,
-                       BANG|TRLBAR|CMDWIN,
+EXCMD(CMD_startinsert, "startinsert",  ex_startinsert,
+                       EX_BANG|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_startgreplace,  "startgreplace", ex_startinsert,
-                       BANG|TRLBAR|CMDWIN,
+EXCMD(CMD_startgreplace,       "startgreplace", ex_startinsert,
+                       EX_BANG|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_startreplace,   "startreplace", ex_startinsert,
-                       BANG|TRLBAR|CMDWIN,
+EXCMD(CMD_startreplace,        "startreplace", ex_startinsert,
+                       EX_BANG|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_stopinsert,     "stopinsert",   ex_stopinsert,
-                       BANG|TRLBAR|CMDWIN,
+EXCMD(CMD_stopinsert,  "stopinsert",   ex_stopinsert,
+                       EX_BANG|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_stjump,         "stjump",       ex_stag,
-                       BANG|TRLBAR|WORD1,
+EXCMD(CMD_stjump,              "stjump",       ex_stag,
+                       EX_BANG|EX_TRLBAR|EX_WORD1,
                        ADDR_NONE),
-EX(CMD_stselect,       "stselect",     ex_stag,
-                       BANG|TRLBAR|WORD1,
+EXCMD(CMD_stselect,    "stselect",     ex_stag,
+                       EX_BANG|EX_TRLBAR|EX_WORD1,
                        ADDR_NONE),
-EX(CMD_sunhide,                "sunhide",      ex_buffer_all,
-                       RANGE|COUNT|TRLBAR,
+EXCMD(CMD_sunhide,             "sunhide",      ex_buffer_all,
+                       EX_RANGE|EX_COUNT|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_sunmap,         "sunmap",       ex_unmap,
-                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_sunmap,              "sunmap",       ex_unmap,
+                       EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_sunmenu,                "sunmenu",      ex_menu,
-                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_sunmenu,             "sunmenu",      ex_menu,
+                       EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_suspend,                "suspend",      ex_stop,
-                       TRLBAR|BANG|CMDWIN,
+EXCMD(CMD_suspend,             "suspend",      ex_stop,
+                       EX_TRLBAR|EX_BANG|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_sview,          "sview",        ex_splitview,
-                       BANG|FILE1|RANGE|EDITCMD|ARGOPT|TRLBAR,
+EXCMD(CMD_sview,               "sview",        ex_splitview,
+                       EX_BANG|EX_FILE1|EX_RANGE|EX_CMDARG|EX_ARGOPT|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_swapname,       "swapname",     ex_swapname,
-                       TRLBAR|CMDWIN,
+EXCMD(CMD_swapname,    "swapname",     ex_swapname,
+                       EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_syntax,         "syntax",       ex_syntax,
-                       EXTRA|NOTRLCOM|CMDWIN,
+EXCMD(CMD_syntax,              "syntax",       ex_syntax,
+                       EX_EXTRA|EX_NOTRLCOM|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_syntime,                "syntime",      ex_syntime,
-                       NEEDARG|WORD1|TRLBAR|CMDWIN,
+EXCMD(CMD_syntime,             "syntime",      ex_syntime,
+                       EX_NEEDARG|EX_WORD1|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_syncbind,       "syncbind",     ex_syncbind,
-                       TRLBAR,
+EXCMD(CMD_syncbind,    "syncbind",     ex_syncbind,
+                       EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_smile,          "smile",        ex_smile,
-                       TRLBAR|CMDWIN|SBOXOK,
+EXCMD(CMD_smile,               "smile",        ex_smile,
+                       EX_TRLBAR|EX_CMDWIN|EX_SBOXOK,
                        ADDR_NONE),
-EX(CMD_t,              "t",            ex_copymove,
-                       RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY,
+EXCMD(CMD_t,           "t",            ex_copymove,
+                       EX_RANGE|EX_WHOLEFOLD|EX_EXTRA|EX_TRLBAR|EX_CMDWIN|EX_MODIFY,
                        ADDR_LINES),
-EX(CMD_tNext,          "tNext",        ex_tag,
-                       RANGE|BANG|TRLBAR|ZEROR,
+EXCMD(CMD_tNext,               "tNext",        ex_tag,
+                       EX_RANGE|EX_BANG|EX_TRLBAR|EX_ZEROR,
                        ADDR_OTHER),
-EX(CMD_tag,            "tag",          ex_tag,
-                       RANGE|BANG|WORD1|TRLBAR|ZEROR,
+EXCMD(CMD_tag,         "tag",          ex_tag,
+                       EX_RANGE|EX_BANG|EX_WORD1|EX_TRLBAR|EX_ZEROR,
                        ADDR_OTHER),
-EX(CMD_tags,           "tags",         do_tags,
-                       TRLBAR|CMDWIN,
+EXCMD(CMD_tags,                "tags",         do_tags,
+                       EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_tab,            "tab",          ex_wrongmodifier,
-                       NEEDARG|EXTRA|NOTRLCOM,
+EXCMD(CMD_tab,         "tab",          ex_wrongmodifier,
+                       EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM,
                        ADDR_NONE),
-EX(CMD_tabclose,       "tabclose",     ex_tabclose,
-                       BANG|RANGE|ZEROR|EXTRA|NOSPC|TRLBAR|CMDWIN,
+EXCMD(CMD_tabclose,    "tabclose",     ex_tabclose,
+                       EX_BANG|EX_RANGE|EX_ZEROR|EX_EXTRA|EX_NOSPC|EX_TRLBAR|EX_CMDWIN,
                        ADDR_TABS),
-EX(CMD_tabdo,          "tabdo",        ex_listdo,
-                       NEEDARG|EXTRA|NOTRLCOM|RANGE|DFLALL,
+EXCMD(CMD_tabdo,               "tabdo",        ex_listdo,
+                       EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM|EX_RANGE|EX_DFLALL,
                        ADDR_TABS),
-EX(CMD_tabedit,                "tabedit",      ex_splitview,
-                       BANG|FILE1|RANGE|ZEROR|EDITCMD|ARGOPT|TRLBAR,
+EXCMD(CMD_tabedit,             "tabedit",      ex_splitview,
+                       EX_BANG|EX_FILE1|EX_RANGE|EX_ZEROR|EX_CMDARG|EX_ARGOPT|EX_TRLBAR,
                        ADDR_TABS),
-EX(CMD_tabfind,                "tabfind",      ex_splitview,
-                       BANG|FILE1|RANGE|ZEROR|EDITCMD|ARGOPT|NEEDARG|TRLBAR,
+EXCMD(CMD_tabfind,             "tabfind",      ex_splitview,
+                       EX_BANG|EX_FILE1|EX_RANGE|EX_ZEROR|EX_CMDARG|EX_ARGOPT|EX_NEEDARG|EX_TRLBAR,
                        ADDR_TABS),
-EX(CMD_tabfirst,       "tabfirst",     ex_tabnext,
-                       TRLBAR,
+EXCMD(CMD_tabfirst,    "tabfirst",     ex_tabnext,
+                       EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_tabmove,                "tabmove",      ex_tabmove,
-                       RANGE|ZEROR|EXTRA|NOSPC|TRLBAR,
+EXCMD(CMD_tabmove,             "tabmove",      ex_tabmove,
+                       EX_RANGE|EX_ZEROR|EX_EXTRA|EX_NOSPC|EX_TRLBAR,
                        ADDR_TABS),
-EX(CMD_tablast,                "tablast",      ex_tabnext,
-                       TRLBAR,
+EXCMD(CMD_tablast,             "tablast",      ex_tabnext,
+                       EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_tabnext,                "tabnext",      ex_tabnext,
-                       RANGE|ZEROR|EXTRA|NOSPC|TRLBAR,
+EXCMD(CMD_tabnext,             "tabnext",      ex_tabnext,
+                       EX_RANGE|EX_ZEROR|EX_EXTRA|EX_NOSPC|EX_TRLBAR,
                        ADDR_TABS),
-EX(CMD_tabnew,         "tabnew",       ex_splitview,
-                       BANG|FILE1|RANGE|ZEROR|EDITCMD|ARGOPT|TRLBAR,
+EXCMD(CMD_tabnew,              "tabnew",       ex_splitview,
+                       EX_BANG|EX_FILE1|EX_RANGE|EX_ZEROR|EX_CMDARG|EX_ARGOPT|EX_TRLBAR,
                        ADDR_TABS),
-EX(CMD_tabonly,                "tabonly",      ex_tabonly,
-                       BANG|RANGE|ZEROR|EXTRA|NOSPC|TRLBAR|CMDWIN,
+EXCMD(CMD_tabonly,             "tabonly",      ex_tabonly,
+                       EX_BANG|EX_RANGE|EX_ZEROR|EX_EXTRA|EX_NOSPC|EX_TRLBAR|EX_CMDWIN,
                        ADDR_TABS),
-EX(CMD_tabprevious,    "tabprevious",  ex_tabnext,
-                       RANGE|ZEROR|EXTRA|NOSPC|TRLBAR,
+EXCMD(CMD_tabprevious, "tabprevious",  ex_tabnext,
+                       EX_RANGE|EX_ZEROR|EX_EXTRA|EX_NOSPC|EX_TRLBAR,
                        ADDR_TABS_RELATIVE),
-EX(CMD_tabNext,                "tabNext",      ex_tabnext,
-                       RANGE|ZEROR|EXTRA|NOSPC|TRLBAR,
+EXCMD(CMD_tabNext,             "tabNext",      ex_tabnext,
+                       EX_RANGE|EX_ZEROR|EX_EXTRA|EX_NOSPC|EX_TRLBAR,
                        ADDR_TABS_RELATIVE),
-EX(CMD_tabrewind,      "tabrewind",    ex_tabnext,
-                       TRLBAR,
+EXCMD(CMD_tabrewind,   "tabrewind",    ex_tabnext,
+                       EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_tabs,           "tabs",         ex_tabs,
-                       TRLBAR|CMDWIN,
+EXCMD(CMD_tabs,                "tabs",         ex_tabs,
+                       EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_tcd,            "tcd",          ex_cd,
-                       BANG|FILE1|TRLBAR|CMDWIN,
+EXCMD(CMD_tcd,         "tcd",          ex_cd,
+                       EX_BANG|EX_FILE1|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_tchdir,         "tchdir",       ex_cd,
-                       BANG|FILE1|TRLBAR|CMDWIN,
+EXCMD(CMD_tchdir,              "tchdir",       ex_cd,
+                       EX_BANG|EX_FILE1|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_tcl,            "tcl",          ex_tcl,
-                       RANGE|EXTRA|NEEDARG|CMDWIN|RESTRICT,
+EXCMD(CMD_tcl,         "tcl",          ex_tcl,
+                       EX_RANGE|EX_EXTRA|EX_NEEDARG|EX_CMDWIN|EX_RESTRICT,
                        ADDR_LINES),
-EX(CMD_tcldo,          "tcldo",        ex_tcldo,
-                       RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN|RESTRICT,
+EXCMD(CMD_tcldo,               "tcldo",        ex_tcldo,
+                       EX_RANGE|EX_DFLALL|EX_EXTRA|EX_NEEDARG|EX_CMDWIN|EX_RESTRICT,
                        ADDR_LINES),
-EX(CMD_tclfile,                "tclfile",      ex_tclfile,
-                       RANGE|FILE1|NEEDARG|CMDWIN|RESTRICT,
+EXCMD(CMD_tclfile,             "tclfile",      ex_tclfile,
+                       EX_RANGE|EX_FILE1|EX_NEEDARG|EX_CMDWIN|EX_RESTRICT,
                        ADDR_LINES),
-EX(CMD_tearoff,                "tearoff",      ex_tearoff,
-                       NEEDARG|EXTRA|TRLBAR|NOTRLCOM|CMDWIN,
+EXCMD(CMD_tearoff,             "tearoff",      ex_tearoff,
+                       EX_NEEDARG|EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_terminal,       "terminal",     ex_terminal,
-                       RANGE|BANG|FILES|CMDWIN,
+EXCMD(CMD_terminal,    "terminal",     ex_terminal,
+                       EX_RANGE|EX_BANG|EX_FILES|EX_CMDWIN,
                        ADDR_LINES),
-EX(CMD_tfirst,         "tfirst",       ex_tag,
-                       RANGE|BANG|TRLBAR|ZEROR,
+EXCMD(CMD_tfirst,              "tfirst",       ex_tag,
+                       EX_RANGE|EX_BANG|EX_TRLBAR|EX_ZEROR,
                        ADDR_OTHER),
-EX(CMD_throw,          "throw",        ex_throw,
-                       EXTRA|NEEDARG|SBOXOK|CMDWIN,
+EXCMD(CMD_throw,               "throw",        ex_throw,
+                       EX_EXTRA|EX_NEEDARG|EX_SBOXOK|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_tjump,          "tjump",        ex_tag,
-                       BANG|TRLBAR|WORD1,
+EXCMD(CMD_tjump,               "tjump",        ex_tag,
+                       EX_BANG|EX_TRLBAR|EX_WORD1,
                        ADDR_NONE),
-EX(CMD_tlast,          "tlast",        ex_tag,
-                       BANG|TRLBAR,
+EXCMD(CMD_tlast,               "tlast",        ex_tag,
+                       EX_BANG|EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_tlmenu,         "tlmenu",       ex_menu,
-                       RANGE|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_tlmenu,              "tlmenu",       ex_menu,
+                       EX_RANGE|EX_ZEROR|EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_OTHER),
-EX(CMD_tlnoremenu,     "tlnoremenu",   ex_menu,
-                       RANGE|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_tlnoremenu,  "tlnoremenu",   ex_menu,
+                       EX_RANGE|EX_ZEROR|EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_OTHER),
-EX(CMD_tlunmenu,       "tlunmenu",     ex_menu,
-                       RANGE|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_tlunmenu,    "tlunmenu",     ex_menu,
+                       EX_RANGE|EX_ZEROR|EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_OTHER),
-EX(CMD_tmenu,          "tmenu",        ex_menu,
-                       RANGE|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_tmenu,               "tmenu",        ex_menu,
+                       EX_RANGE|EX_ZEROR|EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_OTHER),
-EX(CMD_tmap,           "tmap",         ex_map,
-                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_tmap,                "tmap",         ex_map,
+                       EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_tmapclear,      "tmapclear",    ex_mapclear,
-                       EXTRA|TRLBAR|CMDWIN,
+EXCMD(CMD_tmapclear,   "tmapclear",    ex_mapclear,
+                       EX_EXTRA|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_tnext,          "tnext",        ex_tag,
-                       RANGE|BANG|TRLBAR|ZEROR,
+EXCMD(CMD_tnext,               "tnext",        ex_tag,
+                       EX_RANGE|EX_BANG|EX_TRLBAR|EX_ZEROR,
                        ADDR_OTHER),
-EX(CMD_tnoremap,       "tnoremap",     ex_map,
-                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_tnoremap,    "tnoremap",     ex_map,
+                       EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_topleft,                "topleft",      ex_wrongmodifier,
-                       NEEDARG|EXTRA|NOTRLCOM,
+EXCMD(CMD_topleft,             "topleft",      ex_wrongmodifier,
+                       EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM,
                        ADDR_NONE),
-EX(CMD_tprevious,      "tprevious",    ex_tag,
-                       RANGE|BANG|TRLBAR|ZEROR,
+EXCMD(CMD_tprevious,   "tprevious",    ex_tag,
+                       EX_RANGE|EX_BANG|EX_TRLBAR|EX_ZEROR,
                        ADDR_OTHER),
-EX(CMD_trewind,                "trewind",      ex_tag,
-                       RANGE|BANG|TRLBAR|ZEROR,
+EXCMD(CMD_trewind,             "trewind",      ex_tag,
+                       EX_RANGE|EX_BANG|EX_TRLBAR|EX_ZEROR,
                        ADDR_OTHER),
-EX(CMD_try,            "try",          ex_try,
-                       TRLBAR|SBOXOK|CMDWIN,
+EXCMD(CMD_try,         "try",          ex_try,
+                       EX_TRLBAR|EX_SBOXOK|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_tselect,                "tselect",      ex_tag,
-                       BANG|TRLBAR|WORD1,
+EXCMD(CMD_tselect,             "tselect",      ex_tag,
+                       EX_BANG|EX_TRLBAR|EX_WORD1,
                        ADDR_NONE),
-EX(CMD_tunmenu,                "tunmenu",      ex_menu,
-                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_tunmenu,             "tunmenu",      ex_menu,
+                       EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_tunmap,         "tunmap",       ex_unmap,
-                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_tunmap,              "tunmap",       ex_unmap,
+                       EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_undo,           "undo",         ex_undo,
-                       RANGE|COUNT|ZEROR|TRLBAR|CMDWIN,
+EXCMD(CMD_undo,                "undo",         ex_undo,
+                       EX_RANGE|EX_COUNT|EX_ZEROR|EX_TRLBAR|EX_CMDWIN,
                        ADDR_OTHER),
-EX(CMD_undojoin,       "undojoin",     ex_undojoin,
-                       TRLBAR|CMDWIN,
+EXCMD(CMD_undojoin,    "undojoin",     ex_undojoin,
+                       EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_undolist,       "undolist",     ex_undolist,
-                       TRLBAR|CMDWIN,
+EXCMD(CMD_undolist,    "undolist",     ex_undolist,
+                       EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_unabbreviate,   "unabbreviate", ex_abbreviate,
-                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_unabbreviate,        "unabbreviate", ex_abbreviate,
+                       EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_unhide,         "unhide",       ex_buffer_all,
-                       RANGE|COUNT|TRLBAR,
+EXCMD(CMD_unhide,              "unhide",       ex_buffer_all,
+                       EX_RANGE|EX_COUNT|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_unlet,          "unlet",        ex_unlet,
-                       BANG|EXTRA|NEEDARG|SBOXOK|CMDWIN,
+EXCMD(CMD_unlet,               "unlet",        ex_unlet,
+                       EX_BANG|EX_EXTRA|EX_NEEDARG|EX_SBOXOK|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_unlockvar,      "unlockvar",    ex_lockvar,
-                       BANG|EXTRA|NEEDARG|SBOXOK|CMDWIN,
+EXCMD(CMD_unlockvar,   "unlockvar",    ex_lockvar,
+                       EX_BANG|EX_EXTRA|EX_NEEDARG|EX_SBOXOK|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_unmap,          "unmap",        ex_unmap,
-                       BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_unmap,               "unmap",        ex_unmap,
+                       EX_BANG|EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_unmenu,         "unmenu",       ex_menu,
-                       BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_unmenu,              "unmenu",       ex_menu,
+                       EX_BANG|EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_unsilent,       "unsilent",     ex_wrongmodifier,
-                       NEEDARG|EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
+EXCMD(CMD_unsilent,    "unsilent",     ex_wrongmodifier,
+                       EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM|EX_SBOXOK|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_update,         "update",       ex_update,
-                       RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR,
+EXCMD(CMD_update,      "update",       ex_update,
+                       EX_RANGE|EX_WHOLEFOLD|EX_BANG|EX_FILE1|EX_ARGOPT|EX_DFLALL|EX_TRLBAR,
                        ADDR_LINES),
-EX(CMD_vglobal,                "vglobal",      ex_global,
-                       RANGE|WHOLEFOLD|EXTRA|DFLALL|CMDWIN,
+EXCMD(CMD_vglobal,     "vglobal",      ex_global,
+                       EX_RANGE|EX_WHOLEFOLD|EX_EXTRA|EX_DFLALL|EX_CMDWIN,
                        ADDR_LINES),
-EX(CMD_version,                "version",      ex_version,
-                       EXTRA|TRLBAR|CMDWIN,
+EXCMD(CMD_version,     "version",      ex_version,
+                       EX_EXTRA|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_verbose,                "verbose",      ex_wrongmodifier,
-                       NEEDARG|RANGE|EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
+EXCMD(CMD_verbose,     "verbose",      ex_wrongmodifier,
+                       EX_NEEDARG|EX_RANGE|EX_EXTRA|EX_NOTRLCOM|EX_SBOXOK|EX_CMDWIN,
                        ADDR_OTHER),
-EX(CMD_vertical,       "vertical",     ex_wrongmodifier,
-                       NEEDARG|EXTRA|NOTRLCOM,
+EXCMD(CMD_vertical,    "vertical",     ex_wrongmodifier,
+                       EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM,
                        ADDR_NONE),
-EX(CMD_visual,         "visual",       ex_edit,
-                       BANG|FILE1|EDITCMD|ARGOPT|TRLBAR,
+EXCMD(CMD_visual,      "visual",       ex_edit,
+                       EX_BANG|EX_FILE1|EX_CMDARG|EX_ARGOPT|EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_view,           "view",         ex_edit,
-                       BANG|FILE1|EDITCMD|ARGOPT|TRLBAR,
+EXCMD(CMD_view,                "view",         ex_edit,
+                       EX_BANG|EX_FILE1|EX_CMDARG|EX_ARGOPT|EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_vimgrep,                "vimgrep",      ex_vimgrep,
-                       RANGE|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
+EXCMD(CMD_vimgrep,     "vimgrep",      ex_vimgrep,
+                       EX_RANGE|EX_BANG|EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM|EX_TRLBAR|EX_XFILE,
                        ADDR_OTHER),
-EX(CMD_vimgrepadd,     "vimgrepadd",   ex_vimgrep,
-                       RANGE|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
+EXCMD(CMD_vimgrepadd,  "vimgrepadd",   ex_vimgrep,
+                       EX_RANGE|EX_BANG|EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM|EX_TRLBAR|EX_XFILE,
                        ADDR_OTHER),
-EX(CMD_viusage,                "viusage",      ex_viusage,
-                       TRLBAR,
+EXCMD(CMD_viusage,     "viusage",      ex_viusage,
+                       EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_vmap,           "vmap",         ex_map,
-                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_vmap,                "vmap",         ex_map,
+                       EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_vmapclear,      "vmapclear",    ex_mapclear,
-                       EXTRA|TRLBAR|CMDWIN,
+EXCMD(CMD_vmapclear,   "vmapclear",    ex_mapclear,
+                       EX_EXTRA|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_vmenu,          "vmenu",        ex_menu,
-                       RANGE|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_vmenu,       "vmenu",        ex_menu,
+                       EX_RANGE|EX_ZEROR|EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_OTHER),
-EX(CMD_vnoremap,       "vnoremap",     ex_map,
-                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_vnoremap,    "vnoremap",     ex_map,
+                       EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_vnew,           "vnew",         ex_splitview,
-                       BANG|FILE1|RANGE|EDITCMD|ARGOPT|TRLBAR,
+EXCMD(CMD_vnew,                "vnew",         ex_splitview,
+                       EX_BANG|EX_FILE1|EX_RANGE|EX_CMDARG|EX_ARGOPT|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_vnoremenu,      "vnoremenu",    ex_menu,
-                       RANGE|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_vnoremenu,   "vnoremenu",    ex_menu,
+                       EX_RANGE|EX_ZEROR|EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_OTHER),
-EX(CMD_vsplit,         "vsplit",       ex_splitview,
-                       BANG|FILE1|RANGE|EDITCMD|ARGOPT|TRLBAR,
+EXCMD(CMD_vsplit,      "vsplit",       ex_splitview,
+                       EX_BANG|EX_FILE1|EX_RANGE|EX_CMDARG|EX_ARGOPT|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_vunmap,         "vunmap",       ex_unmap,
-                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_vunmap,      "vunmap",       ex_unmap,
+                       EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_vunmenu,                "vunmenu",      ex_menu,
-                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_vunmenu,     "vunmenu",      ex_menu,
+                       EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_write,          "write",        ex_write,
-                       RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR|CMDWIN,
+EXCMD(CMD_write,       "write",        ex_write,
+                       EX_RANGE|EX_WHOLEFOLD|EX_BANG|EX_FILE1|EX_ARGOPT|EX_DFLALL|EX_TRLBAR|EX_CMDWIN,
                        ADDR_LINES),
-EX(CMD_wNext,          "wNext",        ex_wnext,
-                       RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|TRLBAR,
+EXCMD(CMD_wNext,       "wNext",        ex_wnext,
+                       EX_RANGE|EX_WHOLEFOLD|EX_BANG|EX_FILE1|EX_ARGOPT|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_wall,           "wall",         do_wqall,
-                       BANG|TRLBAR|CMDWIN,
+EXCMD(CMD_wall,                "wall",         do_wqall,
+                       EX_BANG|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_while,          "while",        ex_while,
-                       EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
+EXCMD(CMD_while,       "while",        ex_while,
+                       EX_EXTRA|EX_NOTRLCOM|EX_SBOXOK|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_winsize,                "winsize",      ex_winsize,
-                       EXTRA|NEEDARG|TRLBAR,
+EXCMD(CMD_winsize,     "winsize",      ex_winsize,
+                       EX_EXTRA|EX_NEEDARG|EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_wincmd,         "wincmd",       ex_wincmd,
-                       NEEDARG|WORD1|RANGE|CMDWIN,
+EXCMD(CMD_wincmd,      "wincmd",       ex_wincmd,
+                       EX_NEEDARG|EX_WORD1|EX_RANGE|EX_CMDWIN,
                        ADDR_OTHER),
-EX(CMD_windo,          "windo",        ex_listdo,
-                       NEEDARG|EXTRA|NOTRLCOM|RANGE|DFLALL,
+EXCMD(CMD_windo,       "windo",        ex_listdo,
+                       EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM|EX_RANGE|EX_DFLALL,
                        ADDR_WINDOWS),
-EX(CMD_winpos,         "winpos",       ex_winpos,
-                       EXTRA|TRLBAR|CMDWIN,
+EXCMD(CMD_winpos,      "winpos",       ex_winpos,
+                       EX_EXTRA|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_wnext,          "wnext",        ex_wnext,
-                       RANGE|BANG|FILE1|ARGOPT|TRLBAR,
+EXCMD(CMD_wnext,       "wnext",        ex_wnext,
+                       EX_RANGE|EX_BANG|EX_FILE1|EX_ARGOPT|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_wprevious,      "wprevious",    ex_wnext,
-                       RANGE|BANG|FILE1|ARGOPT|TRLBAR,
+EXCMD(CMD_wprevious,   "wprevious",    ex_wnext,
+                       EX_RANGE|EX_BANG|EX_FILE1|EX_ARGOPT|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_wq,             "wq",           ex_exit,
-                       RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR,
+EXCMD(CMD_wq,          "wq",           ex_exit,
+                       EX_RANGE|EX_WHOLEFOLD|EX_BANG|EX_FILE1|EX_ARGOPT|EX_DFLALL|EX_TRLBAR,
                        ADDR_LINES),
-EX(CMD_wqall,          "wqall",        do_wqall,
-                       BANG|FILE1|ARGOPT|TRLBAR,
+EXCMD(CMD_wqall,       "wqall",        do_wqall,
+                       EX_BANG|EX_FILE1|EX_ARGOPT|EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_wundo,          "wundo",        ex_wundo,
-                       BANG|NEEDARG|FILE1,
+EXCMD(CMD_wundo,       "wundo",        ex_wundo,
+                       EX_BANG|EX_NEEDARG|EX_FILE1,
                        ADDR_NONE),
-EX(CMD_wviminfo,       "wviminfo",     ex_viminfo,
-                       BANG|FILE1|TRLBAR|CMDWIN,
+EXCMD(CMD_wviminfo,    "wviminfo",     ex_viminfo,
+                       EX_BANG|EX_FILE1|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_xit,            "xit",          ex_exit,
-                       RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR|CMDWIN,
+EXCMD(CMD_xit,         "xit",          ex_exit,
+                       EX_RANGE|EX_WHOLEFOLD|EX_BANG|EX_FILE1|EX_ARGOPT|EX_DFLALL|EX_TRLBAR|EX_CMDWIN,
                        ADDR_LINES),
-EX(CMD_xall,           "xall",         do_wqall,
-                       BANG|TRLBAR,
+EXCMD(CMD_xall,                "xall",         do_wqall,
+                       EX_BANG|EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_xmap,           "xmap",         ex_map,
-                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_xmap,                "xmap",         ex_map,
+                       EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_xmapclear,      "xmapclear",    ex_mapclear,
-                       EXTRA|TRLBAR|CMDWIN,
+EXCMD(CMD_xmapclear,   "xmapclear",    ex_mapclear,
+                       EX_EXTRA|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_xmenu,          "xmenu",        ex_menu,
-                       RANGE|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_xmenu,       "xmenu",        ex_menu,
+                       EX_RANGE|EX_ZEROR|EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_OTHER),
-EX(CMD_xnoremap,       "xnoremap",     ex_map,
-                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_xnoremap,    "xnoremap",     ex_map,
+                       EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_xnoremenu,      "xnoremenu",    ex_menu,
-                       RANGE|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_xnoremenu,   "xnoremenu",    ex_menu,
+                       EX_RANGE|EX_ZEROR|EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_OTHER),
-EX(CMD_xrestore,       "xrestore",     ex_xrestore,
-                       EXTRA|TRLBAR|CMDWIN,
+EXCMD(CMD_xrestore,    "xrestore",     ex_xrestore,
+                       EX_EXTRA|EX_TRLBAR|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_xunmap,         "xunmap",       ex_unmap,
-                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_xunmap,      "xunmap",       ex_unmap,
+                       EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_xunmenu,                "xunmenu",      ex_menu,
-                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+EXCMD(CMD_xunmenu,     "xunmenu",      ex_menu,
+                       EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN,
                        ADDR_NONE),
-EX(CMD_yank,           "yank",         ex_operators,
-                       RANGE|WHOLEFOLD|REGSTR|COUNT|TRLBAR|CMDWIN,
+EXCMD(CMD_yank,                "yank",         ex_operators,
+                       EX_RANGE|EX_WHOLEFOLD|EX_REGSTR|EX_COUNT|EX_TRLBAR|EX_CMDWIN,
                        ADDR_LINES),
-EX(CMD_z,              "z",            ex_z,
-                       RANGE|WHOLEFOLD|EXTRA|EXFLAGS|TRLBAR|CMDWIN,
+EXCMD(CMD_z,           "z",            ex_z,
+                       EX_RANGE|EX_WHOLEFOLD|EX_EXTRA|EX_FLAGS|EX_TRLBAR|EX_CMDWIN,
                        ADDR_LINES),
 
 /* commands that don't start with a lowercase letter */
-EX(CMD_bang,           "!",            ex_bang,
-                       RANGE|WHOLEFOLD|BANG|FILES|CMDWIN,
+EXCMD(CMD_bang,                "!",            ex_bang,
+                       EX_RANGE|EX_WHOLEFOLD|EX_BANG|EX_FILES|EX_CMDWIN,
                        ADDR_LINES),
-EX(CMD_pound,          "#",            ex_print,
-                       RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN,
+EXCMD(CMD_pound,       "#",            ex_print,
+                       EX_RANGE|EX_WHOLEFOLD|EX_COUNT|EX_FLAGS|EX_TRLBAR|EX_CMDWIN,
                        ADDR_LINES),
-EX(CMD_and,            "&",            do_sub,
-                       RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY,
+EXCMD(CMD_and,         "&",            do_sub,
+                       EX_RANGE|EX_WHOLEFOLD|EX_EXTRA|EX_CMDWIN|EX_MODIFY,
                        ADDR_LINES),
-EX(CMD_star,           "*",            ex_at,
-                       RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN,
+EXCMD(CMD_star,                "*",            ex_at,
+                       EX_RANGE|EX_WHOLEFOLD|EX_EXTRA|EX_TRLBAR|EX_CMDWIN,
                        ADDR_LINES),
-EX(CMD_lshift,         "<",            ex_operators,
-                       RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|MODIFY,
+EXCMD(CMD_lshift,      "<",            ex_operators,
+                       EX_RANGE|EX_WHOLEFOLD|EX_COUNT|EX_FLAGS|EX_TRLBAR|EX_CMDWIN|EX_MODIFY,
                        ADDR_LINES),
-EX(CMD_equal,          "=",            ex_equal,
-                       RANGE|TRLBAR|DFLALL|EXFLAGS|CMDWIN,
+EXCMD(CMD_equal,       "=",            ex_equal,
+                       EX_RANGE|EX_TRLBAR|EX_DFLALL|EX_FLAGS|EX_CMDWIN,
                        ADDR_LINES),
-EX(CMD_rshift,         ">",            ex_operators,
-                       RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|MODIFY,
+EXCMD(CMD_rshift,      ">",            ex_operators,
+                       EX_RANGE|EX_WHOLEFOLD|EX_COUNT|EX_FLAGS|EX_TRLBAR|EX_CMDWIN|EX_MODIFY,
                        ADDR_LINES),
-EX(CMD_at,             "@",            ex_at,
-                       RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN,
+EXCMD(CMD_at,          "@",            ex_at,
+                       EX_RANGE|EX_WHOLEFOLD|EX_EXTRA|EX_TRLBAR|EX_CMDWIN,
                        ADDR_LINES),
-EX(CMD_Next,           "Next",         ex_previous,
-                       EXTRA|RANGE|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR,
+EXCMD(CMD_Next,                "Next",         ex_previous,
+                       EX_EXTRA|EX_RANGE|EX_COUNT|EX_BANG|EX_CMDARG|EX_ARGOPT|EX_TRLBAR,
                        ADDR_OTHER),
-EX(CMD_Print,          "Print",        ex_print,
-                       RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN,
+EXCMD(CMD_Print,       "Print",        ex_print,
+                       EX_RANGE|EX_WHOLEFOLD|EX_COUNT|EX_FLAGS|EX_TRLBAR|EX_CMDWIN,
                        ADDR_LINES),
-EX(CMD_X,              "X",            ex_X,
-                       TRLBAR,
+EXCMD(CMD_X,           "X",            ex_X,
+                       EX_TRLBAR,
                        ADDR_NONE),
-EX(CMD_tilde,          "~",            do_sub,
-                       RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY,
+EXCMD(CMD_tilde,       "~",            do_sub,
+                       EX_RANGE|EX_WHOLEFOLD|EX_EXTRA|EX_CMDWIN|EX_MODIFY,
                        ADDR_LINES),
 
+#undef EXCMD
+
 #ifndef DO_DECLARE_EXCMD
     CMD_SIZE,          /* MUST be after all real commands! */
     CMD_USER = -1,     /* User-defined command */
index 06a62da8c0344dc3e6843d8674aa202829639e95..a76261b40d03b7a14e4d6af7c3b53b73f3ec5d0b 100644 (file)
@@ -1844,7 +1844,7 @@ do_one_cmd(
        if (*ea.cmd == '|' || (exmode_active && ea.line1 != ea.line2))
        {
            ea.cmdidx = CMD_print;
-           ea.argt = RANGE+COUNT+TRLBAR;
+           ea.argt = EX_RANGE+EX_COUNT+EX_TRLBAR;
            if ((errormsg = invalid_range(&ea)) == NULL)
            {
                correct_range(&ea);
@@ -1976,26 +1976,26 @@ do_one_cmd(
     if (!ea.skip)
     {
 #ifdef HAVE_SANDBOX
-       if (sandbox != 0 && !(ea.argt & SBOXOK))
+       if (sandbox != 0 && !(ea.argt & EX_SBOXOK))
        {
            // Command not allowed in sandbox.
            errormsg = _(e_sandbox);
            goto doend;
        }
 #endif
-       if (restricted != 0 && (ea.argt & RESTRICT))
+       if (restricted != 0 && (ea.argt & EX_RESTRICT))
        {
            errormsg = _("E981: Command not allowed in rvim");
            goto doend;
        }
-       if (!curbuf->b_p_ma && (ea.argt & MODIFY))
+       if (!curbuf->b_p_ma && (ea.argt & EX_MODIFY))
        {
            /* Command not allowed in non-'modifiable' buffer */
            errormsg = _(e_modifiable);
            goto doend;
        }
 
-       if (text_locked() && !(ea.argt & CMDWIN)
+       if (text_locked() && !(ea.argt & EX_CMDWIN)
                && !IS_USER_CMDIDX(ea.cmdidx))
        {
            /* Command not allowed when editing the command line. */
@@ -2007,7 +2007,7 @@ do_one_cmd(
         * Do allow ":checktime" (it is postponed).
         * Do allow ":edit" (check for an argument later).
         * Do allow ":file" with no arguments (check for an argument later). */
-       if (!(ea.argt & CMDWIN)
+       if (!(ea.argt & EX_CMDWIN)
                && ea.cmdidx != CMD_checktime
                && ea.cmdidx != CMD_edit
                && ea.cmdidx != CMD_file
@@ -2015,7 +2015,7 @@ do_one_cmd(
                && curbuf_locked())
            goto doend;
 
-       if (!ni && !(ea.argt & RANGE) && ea.addr_count > 0)
+       if (!ni && !(ea.argt & EX_RANGE) && ea.addr_count > 0)
        {
            /* no range allowed */
            errormsg = _(e_norange);
@@ -2023,7 +2023,7 @@ do_one_cmd(
        }
     }
 
-    if (!ni && !(ea.argt & BANG) && ea.forceit)        /* no <!> allowed */
+    if (!ni && !(ea.argt & EX_BANG) && ea.forceit)     // no <!> allowed
     {
        errormsg = _(e_nobang);
        goto doend;
@@ -2033,7 +2033,7 @@ do_one_cmd(
      * Don't complain about the range if it is not used
      * (could happen if line_count is accidentally set to 0).
      */
-    if (!ea.skip && !ni && (ea.argt & RANGE))
+    if (!ea.skip && !ni && (ea.argt & EX_RANGE))
     {
        /*
         * If the range is backwards, ask for confirmation and, if given, swap
@@ -2068,7 +2068,7 @@ do_one_cmd(
     correct_range(&ea);
 
 #ifdef FEAT_FOLDING
-    if (((ea.argt & WHOLEFOLD) || ea.addr_count >= 2) && !global_busy
+    if (((ea.argt & EX_WHOLEFOLD) || ea.addr_count >= 2) && !global_busy
            && ea.addr_type == ADDR_LINES)
     {
        /* Put the first line at the start of a closed fold, put the last line
@@ -2105,7 +2105,7 @@ do_one_cmd(
      * Check for "++opt=val" argument.
      * Must be first, allow ":w ++enc=utf8 !cmd"
      */
-    if (ea.argt & ARGOPT)
+    if (ea.argt & EX_ARGOPT)
        while (ea.arg[0] == '+' && ea.arg[1] == '+')
            if (getargopt(&ea) == FAIL && !ni)
            {
@@ -2161,14 +2161,14 @@ do_one_cmd(
      * Check for "+command" argument, before checking for next command.
      * Don't do this for ":read !cmd" and ":write !cmd".
      */
-    if ((ea.argt & EDITCMD) && !ea.usefilter)
+    if ((ea.argt & EX_CMDARG) && !ea.usefilter)
        ea.do_ecmd_cmd = getargcmd(&ea.arg);
 
     /*
      * Check for '|' to separate commands and '"' to start comments.
      * Don't do this for ":read !cmd" and ":write !cmd".
      */
-    if ((ea.argt & TRLBAR) && !ea.usefilter)
+    if ((ea.argt & EX_TRLBAR) && !ea.usefilter)
        separate_nextcmd(&ea);
 
     /*
@@ -2201,7 +2201,7 @@ do_one_cmd(
        }
     }
 
-    if ((ea.argt & DFLALL) && ea.addr_count == 0)
+    if ((ea.argt & EX_DFLALL) && ea.addr_count == 0)
     {
        buf_T       *buf;
 
@@ -2251,17 +2251,17 @@ do_one_cmd(
            case ADDR_NONE:
            case ADDR_UNSIGNED:
            case ADDR_QUICKFIX:
-               iemsg(_("INTERNAL: Cannot use DFLALL with ADDR_NONE, ADDR_UNSIGNED or ADDR_QUICKFIX"));
+               iemsg(_("INTERNAL: Cannot use EX_DFLALL with ADDR_NONE, ADDR_UNSIGNED or ADDR_QUICKFIX"));
                break;
        }
     }
 
     /* accept numbered register only when no count allowed (:put) */
-    if (       (ea.argt & REGSTR)
+    if (       (ea.argt & EX_REGSTR)
            && *ea.arg != NUL
               /* Do not allow register = for user commands */
            && (!IS_USER_CMDIDX(ea.cmdidx) || *ea.arg != '=')
-           && !((ea.argt & COUNT) && VIM_ISDIGIT(*ea.arg)))
+           && !((ea.argt & EX_COUNT) && VIM_ISDIGIT(*ea.arg)))
     {
 #ifndef FEAT_CLIPBOARD
        /* check these explicitly for a more specific error message */
@@ -2288,16 +2288,16 @@ do_one_cmd(
     }
 
     /*
-     * Check for a count.  When accepting a BUFNAME, don't use "123foo" as a
+     * Check for a count.  When accepting a EX_BUFNAME, don't use "123foo" as a
      * count, it's a buffer name.
      */
-    if ((ea.argt & COUNT) && VIM_ISDIGIT(*ea.arg)
-           && (!(ea.argt & BUFNAME) || *(p = skipdigits(ea.arg)) == NUL
+    if ((ea.argt & EX_COUNT) && VIM_ISDIGIT(*ea.arg)
+           && (!(ea.argt & EX_BUFNAME) || *(p = skipdigits(ea.arg)) == NUL
                                                          || VIM_ISWHITE(*p)))
     {
        n = getdigits(&ea.arg);
        ea.arg = skipwhite(ea.arg);
-       if (n <= 0 && !ni && (ea.argt & ZEROR) == 0)
+       if (n <= 0 && !ni && (ea.argt & EX_ZEROR) == 0)
        {
            errormsg = _(e_zerocount);
            goto doend;
@@ -2324,17 +2324,17 @@ do_one_cmd(
     /*
      * Check for flags: 'l', 'p' and '#'.
      */
-    if (ea.argt & EXFLAGS)
+    if (ea.argt & EX_FLAGS)
        get_flags(&ea);
-                                               /* no arguments allowed */
-    if (!ni && !(ea.argt & EXTRA) && *ea.arg != NUL
-           && *ea.arg != '"' && (*ea.arg != '|' || (ea.argt & TRLBAR) == 0))
+    if (!ni && !(ea.argt & EX_EXTRA) && *ea.arg != NUL
+           && *ea.arg != '"' && (*ea.arg != '|' || (ea.argt & EX_TRLBAR) == 0))
     {
+       // no arguments allowed but there is something
        errormsg = _(e_trailing);
        goto doend;
     }
 
-    if (!ni && (ea.argt & NEEDARG) && *ea.arg == NUL)
+    if (!ni && (ea.argt & EX_NEEDARG) && *ea.arg == NUL)
     {
        errormsg = _(e_argreq);
        goto doend;
@@ -2368,7 +2368,7 @@ do_one_cmd(
                                break;
 
            /* Commands that handle '|' themselves.  Check: A command should
-            * either have the TRLBAR flag, appear in this list or appear in
+            * either have the EX_TRLBAR flag, appear in this list or appear in
             * the list at ":help :bar". */
            case CMD_aboveleft:
            case CMD_and:
@@ -2435,7 +2435,7 @@ do_one_cmd(
     }
 #endif
 
-    if (ea.argt & XFILE)
+    if (ea.argt & EX_XFILE)
     {
        if (expand_filename(&ea, cmdlinep, &errormsg) == FAIL)
            goto doend;
@@ -2445,7 +2445,7 @@ do_one_cmd(
      * Accept buffer name.  Cannot be used at the same time with a buffer
      * number.  Don't do this for a user command.
      */
-    if ((ea.argt & BUFNAME) && *ea.arg != NUL && ea.addr_count == 0
+    if ((ea.argt & EX_BUFNAME) && *ea.arg != NUL && ea.addr_count == 0
            && !IS_USER_CMDIDX(ea.cmdidx))
     {
        /*
@@ -2462,7 +2462,7 @@ do_one_cmd(
            while (p > ea.arg && VIM_ISWHITE(p[-1]))
                --p;
        }
-       ea.line2 = buflist_findpat(ea.arg, p, (ea.argt & BUFUNL) != 0,
+       ea.line2 = buflist_findpat(ea.arg, p, (ea.argt & EX_BUFUNL) != 0,
                                                                FALSE, FALSE);
        if (ea.line2 < 0)           /* failed */
            goto doend;
@@ -3528,7 +3528,7 @@ set_one_cmd_context(
     }
 
     /* Does command allow "+command"? */
-    if ((ea.argt & EDITCMD) && !usefilter && *arg == '+')
+    if ((ea.argt & EX_CMDARG) && !usefilter && *arg == '+')
     {
        /* Check if we're in the +command */
        p = arg + 1;
@@ -3546,7 +3546,7 @@ set_one_cmd_context(
      * Check for '|' to separate commands and '"' to start comments.
      * Don't do this for ":read !cmd" and ":write !cmd".
      */
-    if ((ea.argt & TRLBAR) && !usefilter)
+    if ((ea.argt & EX_TRLBAR) && !usefilter)
     {
        p = arg;
        /* ":redir @" is not the start of a comment */
@@ -3559,7 +3559,7 @@ set_one_cmd_context(
                if (p[1] != NUL)
                    ++p;
            }
-           else if ( (*p == '"' && !(ea.argt & NOTRLCOM))
+           else if ( (*p == '"' && !(ea.argt & EX_NOTRLCOM))
                    || *p == '|' || *p == '\n')
            {
                if (*(p - 1) != '\\')
@@ -3573,9 +3573,9 @@ set_one_cmd_context(
        }
     }
 
-                                               /* no arguments allowed */
-    if (!(ea.argt & EXTRA) && *arg != NUL &&
-                                   vim_strchr((char_u *)"|\"", *arg) == NULL)
+    if (!(ea.argt & EX_EXTRA) && *arg != NUL
+                                 && vim_strchr((char_u *)"|\"", *arg) == NULL)
+       // no arguments allowed but there is something
        return NULL;
 
     /* Find start of last argument (argument just before cursor): */
@@ -3597,7 +3597,7 @@ set_one_cmd_context(
        }
     }
 
-    if (ea.argt & XFILE)
+    if (ea.argt & EX_XFILE)
     {
        int     c;
        int     in_quote = FALSE;
@@ -3630,7 +3630,7 @@ set_one_cmd_context(
             * characters that end the command and white space. */
            else if (c == '|' || c == '\n' || c == '"' || (VIM_ISWHITE(c)
 #ifdef SPACE_IN_FILENAME
-                                        && (!(ea.argt & NOSPC) || usefilter)
+                                       && (!(ea.argt & EX_NOSPC) || usefilter)
 #endif
                    ))
            {
@@ -4001,8 +4001,8 @@ set_one_cmd_context(
        case CMD_USER_BUF:
            if (compl != EXPAND_NOTHING)
            {
-               // XFILE: file names are handled above
-               if (!(ea.argt & XFILE))
+               // EX_XFILE: file names are handled above
+               if (!(ea.argt & EX_XFILE))
                {
 #ifdef FEAT_MENU
                    if (compl == EXPAND_MENUS)
@@ -4652,7 +4652,7 @@ invalid_range(exarg_T *eap)
            || eap->line1 > eap->line2)
        return _(e_invrange);
 
-    if (eap->argt & RANGE)
+    if (eap->argt & EX_RANGE)
     {
        switch (eap->addr_type)
        {
@@ -4738,7 +4738,7 @@ invalid_range(exarg_T *eap)
     static void
 correct_range(exarg_T *eap)
 {
-    if (!(eap->argt & ZEROR))      /* zero in range not allowed */
+    if (!(eap->argt & EX_ZEROR))           // zero in range not allowed
     {
        if (eap->line1 == 0)
            eap->line1 = 1;
@@ -4947,7 +4947,7 @@ expand_filename(
                && eap->cmdidx != CMD_make
                && eap->cmdidx != CMD_terminal
 #ifndef UNIX
-               && !(eap->argt & NOSPC)
+               && !(eap->argt & EX_NOSPC)
 #endif
                )
        {
@@ -4999,7 +4999,7 @@ expand_filename(
      * One file argument: Expand wildcards.
      * Don't do this with ":r !command" or ":w !command".
      */
-    if ((eap->argt & NOSPC) && !eap->usefilter)
+    if ((eap->argt & EX_NOSPC) && !eap->usefilter)
     {
        /*
         * May do this twice:
@@ -5150,7 +5150,7 @@ separate_nextcmd(exarg_T *eap)
     {
        if (*p == Ctrl_V)
        {
-           if (eap->argt & (USECTRLV | XFILE))
+           if (eap->argt & (EX_CTRLV | EX_XFILE))
                ++p;            /* skip CTRL-V and next char */
            else
                                /* remove CTRL-V and skip next char */
@@ -5161,7 +5161,7 @@ separate_nextcmd(exarg_T *eap)
 
 #ifdef FEAT_EVAL
        /* Skip over `=expr` when wildcards are expanded. */
-       else if (p[0] == '`' && p[1] == '=' && (eap->argt & XFILE))
+       else if (p[0] == '`' && p[1] == '=' && (eap->argt & EX_XFILE))
        {
            p += 2;
            (void)skip_expr(&p);
@@ -5171,7 +5171,7 @@ separate_nextcmd(exarg_T *eap)
        /* Check for '"': start of comment or '|': next command */
        /* :@" and :*" do not start a comment!
         * :redir @" doesn't either. */
-       else if ((*p == '"' && !(eap->argt & NOTRLCOM)
+       else if ((*p == '"' && !(eap->argt & EX_NOTRLCOM)
                    && ((eap->cmdidx != CMD_at && eap->cmdidx != CMD_star)
                        || p != eap->arg)
                    && (eap->cmdidx != CMD_redir
@@ -5179,11 +5179,11 @@ separate_nextcmd(exarg_T *eap)
                || *p == '|' || *p == '\n')
        {
            /*
-            * We remove the '\' before the '|', unless USECTRLV is used
+            * We remove the '\' before the '|', unless EX_CTRLV is used
             * AND 'b' is present in 'cpoptions'.
             */
            if ((vim_strchr(p_cpo, CPO_BAR) == NULL
-                             || !(eap->argt & USECTRLV)) && *(p - 1) == '\\')
+                             || !(eap->argt & EX_CTRLV)) && *(p - 1) == '\\')
            {
                STRMOVE(p - 1, p);      /* remove the '\' */
                --p;
@@ -5197,7 +5197,7 @@ separate_nextcmd(exarg_T *eap)
        }
     }
 
-    if (!(eap->argt & NOTRLCOM))       /* remove trailing spaces */
+    if (!(eap->argt & EX_NOTRLCOM))    /* remove trailing spaces */
        del_trailing_spaces(eap->arg);
 }
 
@@ -9276,6 +9276,7 @@ find_cmdline_var(char_u *src, int *usedlen)
  *       '#'       to curwin->w_altfile
  *       '<cword>' to word under the cursor
  *       '<cWORD>' to WORD under the cursor
+ *       '<cexpr>' to C-expression under the cursor
  *       '<cfile>' to path name under the cursor
  *       '<sfile>' to sourced file name
  *       '<slnum>' to sourced file line number
index c9c63acb4ee123cfdeb628ac1f9a2c9f0b221e5c..b1b996183bb46fbf6f4876a982717e6a0ddc953c 100644 (file)
@@ -4834,7 +4834,7 @@ addstar(
  *  EXPAND_COMMANDS        Cursor is still touching the command, so complete
  *                         it.
  *  EXPAND_BUFFERS         Complete file names for :buf and :sbuf commands.
- *  EXPAND_FILES           After command with XFILE set, or after setting
+ *  EXPAND_FILES           After command with EX_XFILE set, or after setting
  *                         with P_EXPAND set.  eg :e ^I, :w>>^I
  *  EXPAND_DIRECTORIES     In some cases this is used instead of the latter
  *                         when we know only directories are of interest.  eg
index 9c17a58757957b48f0a5cd9d8429f3157b69501c..f01c840da70ec4c2b79d7ef564c2703aadda30ff 100644 (file)
@@ -4809,7 +4809,7 @@ syn_cmd_include(exarg_T *eap, int syncing UNUSED)
      * Everything that's left, up to the next command, should be the
      * filename to include.
      */
-    eap->argt |= (XFILE | NOSPC);
+    eap->argt |= (EX_XFILE | EX_NOSPC);
     separate_nextcmd(eap);
     if (*eap->arg == '<' || *eap->arg == '$' || mch_isFullName(eap->arg))
     {
index e5c3a3e46c6e0c0fad69b57e356a1addadd0b5fc..9e09a8b3c1a2ad311f3a5e89e7802912e6079adb 100644 (file)
@@ -419,12 +419,12 @@ uc_list(char_u *name, size_t name_len)
 
            // Special cases
            len = 4;
-           if (a & BANG)
+           if (a & EX_BANG)
            {
                msg_putchar('!');
                --len;
            }
-           if (a & REGSTR)
+           if (a & EX_REGSTR)
            {
                msg_putchar('"');
                --len;
@@ -434,7 +434,7 @@ uc_list(char_u *name, size_t name_len)
                msg_putchar('b');
                --len;
            }
-           if (a & TRLBAR)
+           if (a & EX_TRLBAR)
            {
                msg_putchar('|');
                --len;
@@ -456,13 +456,13 @@ uc_list(char_u *name, size_t name_len)
            len = 0;
 
            // Arguments
-           switch ((int)(a & (EXTRA|NOSPC|NEEDARG)))
+           switch ((int)(a & (EX_EXTRA|EX_NOSPC|EX_NEEDARG)))
            {
-               case 0:                     IObuff[len++] = '0'; break;
-               case (EXTRA):               IObuff[len++] = '*'; break;
-               case (EXTRA|NOSPC):         IObuff[len++] = '?'; break;
-               case (EXTRA|NEEDARG):       IObuff[len++] = '+'; break;
-               case (EXTRA|NOSPC|NEEDARG): IObuff[len++] = '1'; break;
+               case 0:                         IObuff[len++] = '0'; break;
+               case (EX_EXTRA):                IObuff[len++] = '*'; break;
+               case (EX_EXTRA|EX_NOSPC):       IObuff[len++] = '?'; break;
+               case (EX_EXTRA|EX_NEEDARG):     IObuff[len++] = '+'; break;
+               case (EX_EXTRA|EX_NOSPC|EX_NEEDARG): IObuff[len++] = '1'; break;
            }
 
            do {
@@ -470,15 +470,15 @@ uc_list(char_u *name, size_t name_len)
            } while (len < 5 - over);
 
            // Address / Range
-           if (a & (RANGE|COUNT))
+           if (a & (EX_RANGE|EX_COUNT))
            {
-               if (a & COUNT)
+               if (a & EX_COUNT)
                {
                    // -count=N
                    sprintf((char *)IObuff + len, "%ldc", cmd->uc_def);
                    len += (int)STRLEN(IObuff + len);
                }
-               else if (a & DFLALL)
+               else if (a & EX_DFLALL)
                    IObuff[len++] = '%';
                else if (cmd->uc_def >= 0)
                {
@@ -638,10 +638,10 @@ parse_compl_arg(
        {
            *complp = command_complete[i].expand;
            if (command_complete[i].expand == EXPAND_BUFFERS)
-               *argt |= BUFNAME;
+               *argt |= EX_BUFNAME;
            else if (command_complete[i].expand == EXPAND_DIRECTORIES
                    || command_complete[i].expand == EXPAND_FILES)
-               *argt |= XFILE;
+               *argt |= EX_XFILE;
            break;
        }
     }
@@ -702,13 +702,13 @@ uc_scan_attr(
 
     // First, try the simple attributes (no arguments)
     if (STRNICMP(attr, "bang", len) == 0)
-       *argt |= BANG;
+       *argt |= EX_BANG;
     else if (STRNICMP(attr, "buffer", len) == 0)
        *flags |= UC_BUFFER;
     else if (STRNICMP(attr, "register", len) == 0)
-       *argt |= REGSTR;
+       *argt |= EX_REGSTR;
     else if (STRNICMP(attr, "bar", len) == 0)
-       *argt |= TRLBAR;
+       *argt |= EX_TRLBAR;
     else
     {
        int     i;
@@ -736,13 +736,13 @@ uc_scan_attr(
                    // Do nothing - this is the default
                    ;
                else if (*val == '1')
-                   *argt |= (EXTRA | NOSPC | NEEDARG);
+                   *argt |= (EX_EXTRA | EX_NOSPC | EX_NEEDARG);
                else if (*val == '*')
-                   *argt |= EXTRA;
+                   *argt |= EX_EXTRA;
                else if (*val == '?')
-                   *argt |= (EXTRA | NOSPC);
+                   *argt |= (EX_EXTRA | EX_NOSPC);
                else if (*val == '+')
-                   *argt |= (EXTRA | NEEDARG);
+                   *argt |= (EX_EXTRA | EX_NEEDARG);
                else
                    goto wrong_nargs;
            }
@@ -755,9 +755,9 @@ wrong_nargs:
        }
        else if (STRNICMP(attr, "range", attrlen) == 0)
        {
-           *argt |= RANGE;
+           *argt |= EX_RANGE;
            if (vallen == 1 && *val == '%')
-               *argt |= DFLALL;
+               *argt |= EX_DFLALL;
            else if (val != NULL)
            {
                p = val;
@@ -769,7 +769,7 @@ two_count:
                }
 
                *def = getdigits(&p);
-               *argt |= ZEROR;
+               *argt |= EX_ZEROR;
 
                if (p != val + vallen || vallen == 0)
                {
@@ -784,7 +784,7 @@ invalid_count:
        }
        else if (STRNICMP(attr, "count", attrlen) == 0)
        {
-           *argt |= (COUNT | ZEROR | RANGE);
+           *argt |= (EX_COUNT | EX_ZEROR | EX_RANGE);
            // default for -count is using any number
            if (*addr_type_arg == ADDR_NONE)
                *addr_type_arg = ADDR_OTHER;
@@ -818,7 +818,7 @@ invalid_count:
        }
        else if (STRNICMP(attr, "addr", attrlen) == 0)
        {
-           *argt |= RANGE;
+           *argt |= EX_RANGE;
            if (val == NULL)
            {
                emsg(_("E179: argument required for -addr"));
@@ -827,7 +827,7 @@ invalid_count:
            if (parse_addr_type_arg(val, (int)vallen, addr_type_arg) == FAIL)
                return FAIL;
            if (*addr_type_arg != ADDR_LINES)
-               *argt |= ZEROR;
+               *argt |= EX_ZEROR;
        }
        else
        {
@@ -1315,7 +1315,7 @@ uc_check_code(
 
        // When specified there is a single argument don't split it.
        // Works for ":Cmd %" when % is "a b c".
-       if ((eap->argt & NOSPC) && quote == 2)
+       if ((eap->argt & EX_NOSPC) && quote == 2)
            quote = 1;
 
        switch (quote)
index f274cef13420572c6d1b7e7620e729adceebc46e..afd775a71b91cad21256f039c7b028bd43a71bfc 100644 (file)
@@ -777,6 +777,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1667,
 /**/
     1666,
 /**/