diff options
-rw-r--r-- | src/nvim/ex_cmds.lua | 14 | ||||
-rw-r--r-- | src/nvim/ex_docmd.c | 2 |
2 files changed, 10 insertions, 6 deletions
diff --git a/src/nvim/ex_cmds.lua b/src/nvim/ex_cmds.lua index 69ff37f23c..2bf867c32c 100644 --- a/src/nvim/ex_cmds.lua +++ b/src/nvim/ex_cmds.lua @@ -3298,6 +3298,7 @@ module.cmds = { addr_type='ADDR_LINES', func='ex_z', }, + -- commands that don't start with a letter { command='!', enum='CMD_bang', @@ -3348,18 +3349,19 @@ module.cmds = { func='ex_at', }, { - command='Next', - flags=bit.bor(EXTRA, RANGE, COUNT, BANG, CMDARG, ARGOPT, TRLBAR), - addr_type='ADDR_OTHER', - func='ex_previous', - }, - { command='~', enum='CMD_tilde', flags=bit.bor(RANGE, WHOLEFOLD, EXTRA, CMDWIN, MODIFY), addr_type='ADDR_LINES', func='ex_substitute', }, + -- commands that start with an uppercase letter + { + command='Next', + flags=bit.bor(EXTRA, RANGE, COUNT, BANG, CMDARG, ARGOPT, TRLBAR), + addr_type='ADDR_OTHER', + func='ex_previous', + }, } return module diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c index 4e6846bf21..f0ee849047 100644 --- a/src/nvim/ex_docmd.c +++ b/src/nvim/ex_docmd.c @@ -3028,6 +3028,8 @@ char *find_ex_command(exarg_T *eap, int *full) if (ASCII_ISLOWER(c2)) { eap->cmdidx += cmdidxs2[CHAR_ORD_LOW(c1)][CHAR_ORD_LOW(c2)]; } + } else if (ASCII_ISUPPER(eap->cmd[0])) { + eap->cmdidx = CMD_Next; } else { eap->cmdidx = CMD_bang; } |