aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/ex_cmds.lua14
-rw-r--r--src/nvim/ex_docmd.c2
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;
}