diff --git a/src/nvim/mapping.c b/src/nvim/mapping.c index ab9d68f911..147985377e 100644 --- a/src/nvim/mapping.c +++ b/src/nvim/mapping.c @@ -2804,8 +2804,7 @@ void modify_keymap(uint64_t channel_id, Buffer buffer, bool is_unmap, String mod api_set_error(err, kErrorTypeException, e_nomap, 0); goto fail_and_free; case 5: - api_set_error(err, kErrorTypeException, - "E227: mapping already exists for %s", parsed_args.lhs); + api_set_error(err, kErrorTypeException, e_mapping_already_exists_for_str, lhs.data); goto fail_and_free; default: assert(false && "Unrecognized return code!"); diff --git a/test/functional/api/keymap_spec.lua b/test/functional/api/keymap_spec.lua index 995711507f..73dae0dd60 100644 --- a/test/functional/api/keymap_spec.lua +++ b/test/functional/api/keymap_spec.lua @@ -803,11 +803,17 @@ describe('nvim_set_keymap, nvim_del_keymap', function() it('throws appropriate error messages when setting maps', function() api.nvim_set_keymap('l', 'lhs', 'rhs', {}) eq( - 'E227: mapping already exists for lhs', + 'E227: Mapping already exists for lhs', pcall_err(api.nvim_set_keymap, 'l', 'lhs', 'rhs', { unique = true }) ) -- different mapmode, no error should be thrown api.nvim_set_keymap('t', 'lhs', 'rhs', { unique = true }) + + api.nvim_set_keymap('n', '', 'rhs', {}) + eq( + 'E227: Mapping already exists for ', + pcall_err(api.nvim_set_keymap, 'n', '', 'rhs', { unique = true }) + ) end) it('can set mappings whose RHS change dynamically', function()