diff options
-rw-r--r-- | src/nvim/keymap.c | 3 | ||||
-rw-r--r-- | test/functional/ui/input_spec.lua | 4 |
2 files changed, 6 insertions, 1 deletions
diff --git a/src/nvim/keymap.c b/src/nvim/keymap.c index b53a0d3e0b..517274a1d3 100644 --- a/src/nvim/keymap.c +++ b/src/nvim/keymap.c @@ -712,7 +712,8 @@ static int extract_modifiers(int key, int *modp) { int modifiers = *modp; - if (!(modifiers & MOD_MASK_CMD)) { // Command-key is special + // Command-key and ctrl are special + if (!(modifiers & MOD_MASK_CMD) && !(modifiers & MOD_MASK_CTRL)) { if ((modifiers & MOD_MASK_SHIFT) && ASCII_ISALPHA(key)) { key = TOUPPER_ASC(key); modifiers &= ~MOD_MASK_SHIFT; diff --git a/test/functional/ui/input_spec.lua b/test/functional/ui/input_spec.lua index 12d0e4f40b..9313a35708 100644 --- a/test/functional/ui/input_spec.lua +++ b/test/functional/ui/input_spec.lua @@ -23,6 +23,8 @@ describe('mappings', function() before_each(function() clear() cid = nvim('get_api_info')[1] + add_mapping('<C-L>', '<C-L>') + add_mapping('<C-S-L>', '<C-S-L>') add_mapping('<s-up>', '<s-up>') add_mapping('<s-up>', '<s-up>') add_mapping('<c-s-up>', '<c-s-up>') @@ -51,6 +53,8 @@ describe('mappings', function() end) it('ok', function() + check_mapping('<C-L>', '<C-L>') + check_mapping('<C-S-L>', '<C-S-L>') check_mapping('<s-up>', '<s-up>') check_mapping('<c-s-up>', '<c-s-up>') check_mapping('<s-c-up>', '<c-s-up>') |