aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/menu.c3
-rw-r--r--test/functional/ex_cmds/menu_spec.lua23
2 files changed, 26 insertions, 0 deletions
diff --git a/src/nvim/menu.c b/src/nvim/menu.c
index 1dece58dfe..9857b8a778 100644
--- a/src/nvim/menu.c
+++ b/src/nvim/menu.c
@@ -1262,6 +1262,9 @@ void ex_emenu(exarg_T *eap)
if (((State & INSERT) || restart_edit) && !current_SID) {
mode = (char_u *)"Insert";
idx = MENU_INDEX_INSERT;
+ } else if (State & CMDLINE) {
+ mode = (char_u *)"Command";
+ idx = MENU_INDEX_CMDLINE;
} else if (get_real_state() & VISUAL) {
/* Detect real visual mode -- if we are really in visual mode we
* don't need to do any guesswork to figure out what the selection
diff --git a/test/functional/ex_cmds/menu_spec.lua b/test/functional/ex_cmds/menu_spec.lua
index 6af889bf9e..8f4a195fd7 100644
--- a/test/functional/ex_cmds/menu_spec.lua
+++ b/test/functional/ex_cmds/menu_spec.lua
@@ -1,4 +1,5 @@
local helpers = require('test.functional.helpers')
+local Screen = require('test.functional.ui.screen').new(40,4)
local clear, execute, nvim = helpers.clear, helpers.execute, helpers.nvim
local expect = helpers.expect
local feed = helpers.feed
@@ -36,3 +37,25 @@ describe(':emenu', function()
end)
end)
+
+describe('emenu Edit.Paste while in commandline', function()
+ before_each(function()
+ clear()
+ screen = Screen.new(40, 4)
+ screen:attach()
+ end)
+
+ it('ok', function()
+ nvim('command', 'runtime menu.vim')
+ feed('ithis is a sentence<esc>^"+yiwo<esc>')
+ nvim('command', 'emenu Edit.Paste')
+ feed(':')
+ nvim('command', 'emenu Edit.Paste')
+ screen:expect([[
+ this is a sentence |
+ this |
+ ~ |
+ :this^ |
+ ]])
+ end)
+end)