diff options
| author | Maxime Coste <mawww@kakoune.org> | 2019-09-15 19:40:38 +1000 |
|---|---|---|
| committer | Maxime Coste <mawww@kakoune.org> | 2019-09-15 19:40:38 +1000 |
| commit | fc3a1b69734da9f8b3ac2a9222408cc3052cd525 (patch) | |
| tree | 9bb18b0bc12a02d54e589fdc4571e7e419cc4dc0 /src | |
| parent | 33a00c70318e555bc9bb427de600f082a21261fd (diff) | |
Make arrow keys normal mode mappings instead of commands
Diffstat (limited to 'src')
| -rw-r--r-- | src/main.cc | 20 | ||||
| -rw-r--r-- | src/normal.cc | 14 |
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>>} }, |
