summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMaxime Coste <mawww@kakoune.org>2019-09-15 19:40:38 +1000
committerMaxime Coste <mawww@kakoune.org>2019-09-15 19:40:38 +1000
commitfc3a1b69734da9f8b3ac2a9222408cc3052cd525 (patch)
tree9bb18b0bc12a02d54e589fdc4571e7e419cc4dc0 /src
parent33a00c70318e555bc9bb427de600f082a21261fd (diff)
Make arrow keys normal mode mappings instead of commands
Diffstat (limited to 'src')
-rw-r--r--src/main.cc20
-rw-r--r--src/normal.cc14
2 files changed, 20 insertions, 14 deletions
diff --git a/src/main.cc b/src/main.cc
index d07f5a1f..bdaa4729 100644
--- a/src/main.cc
+++ b/src/main.cc
@@ -337,6 +337,25 @@ void register_registers()
register_manager.add_register('_', std::make_unique<NullRegister>());
}
+void register_keymaps()
+{
+ auto& keymaps = GlobalScope::instance().keymaps();
+ keymaps.map_key(Key::Left, KeymapMode::Normal, {'h'}, "");
+ keymaps.map_key(Key::Right, KeymapMode::Normal, {'l'}, "");
+ keymaps.map_key(Key::Down, KeymapMode::Normal, {'j'}, "");
+ keymaps.map_key(Key::Up, KeymapMode::Normal, {'k'}, "");
+
+ keymaps.map_key(shift(Key::Left), KeymapMode::Normal, {'H'}, "");
+ keymaps.map_key(shift(Key::Right), KeymapMode::Normal, {'L'}, "");
+ keymaps.map_key(shift(Key::Down), KeymapMode::Normal, {'J'}, "");
+ keymaps.map_key(shift(Key::Up), KeymapMode::Normal, {'K'}, "");
+
+ keymaps.map_key(Key::End, KeymapMode::Normal, {alt('l')}, "");
+ keymaps.map_key(Key::Home, KeymapMode::Normal, {alt('h')}, "");
+ keymaps.map_key(shift(Key::End), KeymapMode::Normal, {alt('L')}, "");
+ keymaps.map_key(shift(Key::Home), KeymapMode::Normal, {alt('H')}, "");
+}
+
static void check_tabstop(const int& val)
{
if (val < 1) throw runtime_error{"tabstop should be strictly positive"};
@@ -672,6 +691,7 @@ int run_server(StringView session, StringView server_init,
register_options();
register_registers();
+ register_keymaps();
register_commands();
register_highlighters();
diff --git a/src/normal.cc b/src/normal.cc
index ad085458..5661d6cc 100644
--- a/src/normal.cc
+++ b/src/normal.cc
@@ -2175,21 +2175,11 @@ static constexpr HashMap<Key, NormalCmd, MemoryDomain::Undefined, KeymapBackend>
{ {'k'}, {"move up", move_cursor<LineCount, Backward>} },
{ {'l'}, {"move right", move_cursor<CharCount, Forward>} },
- { {Key::Left}, { "move left", move_cursor<CharCount, Backward>} },
- { {Key::Down}, { "move down", move_cursor<LineCount, Forward>} },
- { {Key::Up}, { "move up", move_cursor<LineCount, Backward>} },
- { {Key::Right}, {"move right", move_cursor<CharCount, Forward>} },
-
{ {'H'}, {"extend left", move_cursor<CharCount, Backward, SelectMode::Extend>} },
{ {'J'}, {"extend down", move_cursor<LineCount, Forward, SelectMode::Extend>} },
{ {'K'}, {"extend up", move_cursor<LineCount, Backward, SelectMode::Extend>} },
{ {'L'}, {"extend right", move_cursor<CharCount, Forward, SelectMode::Extend>} },
- { shift(Key::Left), {"extend left", move_cursor<CharCount, Backward, SelectMode::Extend>} },
- { shift(Key::Down), {"extend down", move_cursor<LineCount, Forward, SelectMode::Extend>} },
- { shift(Key::Up), {"extend up", move_cursor<LineCount, Backward, SelectMode::Extend>} },
- { shift(Key::Right), {"extend right", move_cursor<CharCount, Forward, SelectMode::Extend>} },
-
{ {'t'}, {"select to next character", select_to_next_char<SelectFlags::None>} },
{ {'f'}, {"select to next character included", select_to_next_char<SelectFlags::Inclusive>} },
{ {'T'}, {"extend to next character", select_to_next_char<SelectFlags::Extend>} },
@@ -2266,13 +2256,9 @@ static constexpr HashMap<Key, NormalCmd, MemoryDomain::Undefined, KeymapBackend>
{ {alt('B')}, {"extend to previous WORD start", repeated<select<SelectMode::Extend, select_to_previous_word<WORD>>>} },
{ {alt('l')}, {"select to line end", repeated<select<SelectMode::Replace, select_to_line_end<false>>>} },
- { {Key::End}, {"select to line end", repeated<select<SelectMode::Replace, select_to_line_end<false>>>} },
{ {alt('L')}, {"extend to line end", repeated<select<SelectMode::Extend, select_to_line_end<false>>>} },
- { shift(Key::End), {"extend to line end", repeated<select<SelectMode::Extend, select_to_line_end<false>>>} },
{ {alt('h')}, {"select to line begin", repeated<select<SelectMode::Replace, select_to_line_begin<false>>>} },
- { {Key::Home}, {"select to line begin", repeated<select<SelectMode::Replace, select_to_line_begin<false>>>} },
{ {alt('H')}, {"extend to line begin", repeated<select<SelectMode::Extend, select_to_line_begin<false>>>} },
- { shift(Key::Home), {"extend to line begin", repeated<select<SelectMode::Extend, select_to_line_begin<false>>>} },
{ {'x'}, {"select line", repeated<select<SelectMode::Replace, select_line>>} },
{ {'X'}, {"extend line", repeated<select<SelectMode::Extend, select_line>>} },