EX_RANGE|EX_WHOLEFOLD|EX_EXTRA|EX_FLAGS|EX_TRLBAR|EX_CMDWIN,
ADDR_LINES),
-// commands that don't start with a lowercase letter
+// commands that don't start with a letter
EXCMD(CMD_bang, "!", ex_bang,
EX_RANGE|EX_WHOLEFOLD|EX_BANG|EX_FILES|EX_CMDWIN,
ADDR_LINES),
EXCMD(CMD_at, "@", ex_at,
EX_RANGE|EX_WHOLEFOLD|EX_EXTRA|EX_TRLBAR|EX_CMDWIN,
ADDR_LINES),
+EXCMD(CMD_tilde, "~", do_sub,
+ EX_RANGE|EX_WHOLEFOLD|EX_EXTRA|EX_CMDWIN|EX_MODIFY,
+ ADDR_LINES),
+
+// commands that start with an uppercase letter
EXCMD(CMD_Next, "Next", ex_previous,
EX_EXTRA|EX_RANGE|EX_COUNT|EX_BANG|EX_CMDARG|EX_ARGOPT|EX_TRLBAR,
ADDR_OTHER),
EXCMD(CMD_X, "X", ex_X,
EX_TRLBAR,
ADDR_NONE),
-EXCMD(CMD_tilde, "~", do_sub,
- EX_RANGE|EX_WHOLEFOLD|EX_EXTRA|EX_CMDWIN|EX_MODIFY,
- ADDR_LINES),
#undef EXCMD
char_u *
find_ex_command(
exarg_T *eap,
- int *full UNUSED,
- int (*lookup)(char_u *, size_t, cctx_T *) UNUSED,
- cctx_T *cctx UNUSED)
+ int *full UNUSED,
+ int (*lookup)(char_u *, size_t, cctx_T *) UNUSED,
+ cctx_T *cctx UNUSED)
{
int len;
char_u *p;
if (ASCII_ISLOWER(c2))
eap->cmdidx += cmdidxs2[CharOrdLow(c1)][CharOrdLow(c2)];
}
+ else if (ASCII_ISUPPER(eap->cmd[0]))
+ eap->cmdidx = CMD_Next;
else
eap->cmdidx = CMD_bang;
/*
* Check if "c" ends an Ex command.
- * In Vim9 script does not check for white space before #.
+ * In Vim9 script does not check for white space before # or #{.
*/
int
ends_excmd(int c)