summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/commands.cc5
-rw-r--r--src/normal.cc2
2 files changed, 6 insertions, 1 deletions
diff --git a/src/commands.cc b/src/commands.cc
index b7e2195e..fbedc529 100644
--- a/src/commands.cc
+++ b/src/commands.cc
@@ -1815,6 +1815,11 @@ const CommandDesc map_key_cmd = {
if (key.size() != 1)
throw runtime_error("only a single key can be mapped");
+ KeymapMode lower_case_only_modes[] = {KeymapMode::Goto};
+ if (key[0].codepoint().map(iswupper).value_or(true) and
+ contains(lower_case_only_modes, keymap_mode))
+ throw runtime_error("mode only supports lower case mappings");
+
KeyList mapping = parse_keys(parser[3]);
keymaps.map_key(key[0], keymap_mode, std::move(mapping),
trim_indent(parser.get_switch("docstring").value_or("")));
diff --git a/src/normal.cc b/src/normal.cc
index 40efc32d..4e94fe57 100644
--- a/src/normal.cc
+++ b/src/normal.cc
@@ -228,7 +228,7 @@ void goto_commands(Context& context, NormalParams params)
if (not cp or key == Key::Escape)
return;
auto& buffer = context.buffer();
- switch (*cp)
+ switch (to_lower(*cp))
{
case 'g':
case 'k':