diff --git a/src/core/Command.h b/src/core/Command.h index b056419..251e649 100644 --- a/src/core/Command.h +++ b/src/core/Command.h @@ -9,16 +9,34 @@ public: enum : uint32_t { NOP, - FORWARD_UP_TO_CHAR, - FORWARD_ON_TO_CHAR, - BACK_UP_TO_CHAR, - BACK_ON_TO_CHAR, + GO_FORWARD_UP_TO_CHAR, + GO_FORWARD_ON_TO_CHAR, + GO_BACK_UP_TO_CHAR, + GO_BACK_ON_TO_CHAR, DELETE_MOTION, DELETE_LINE, DELETE_CHAR, DELETE_CHAR_BACK, CHANGE_MOTION, CHANGE_LINE, + YANK_MOTION, + YANK_LINE, + UNDO, + ENTER_INSERT_MODE, + ENTER_INSERT_MODE_NEXT_LINE, + ENTER_INSERT_MODE_AFTER_CHAR, + PUT, + PUT_BEFORE, + CHANGE_CHAR, + GO_TO_LINE, + GO_LEFT, + GO_DOWN, + GO_UP, + GO_RIGHT, + NEXT, + PREV, + GO_START_OF_LINE, + GO_END_OF_LINE, COMMAND_COUNT, }; diff --git a/src/core/DefaultCommandMap.cc b/src/core/DefaultCommandMap.cc index c9d365a..6483011 100644 --- a/src/core/DefaultCommandMap.cc +++ b/src/core/DefaultCommandMap.cc @@ -13,14 +13,35 @@ void DefaultCommandMap::build() motion_map->add("T", Command::Motion::BACK_UP_TO_CHAR, nullptr, true); motion_map->add("F", Command::Motion::BACK_ON_TO_CHAR, nullptr, true); - dcm->add("t", Command::FORWARD_UP_TO_CHAR, nullptr, true); - dcm->add("f", Command::FORWARD_ON_TO_CHAR, nullptr, true); - dcm->add("T", Command::BACK_UP_TO_CHAR, nullptr, true); - dcm->add("F", Command::BACK_ON_TO_CHAR, nullptr, true); + dcm->add("$", Command::GO_END_OF_LINE, nullptr, false); + dcm->add("0", Command::GO_START_OF_LINE, nullptr, false); + + dcm->add("t", Command::GO_FORWARD_UP_TO_CHAR, nullptr, true); + dcm->add("T", Command::GO_BACK_UP_TO_CHAR, nullptr, true); + dcm->add("y", Command::YANK_MOTION, motion_map, false); + dcm->add("yy", Command::YANK_LINE, nullptr, false); + dcm->add("u", Command::UNDO, nullptr, false); + dcm->add("i", Command::ENTER_INSERT_MODE, nullptr, false); + dcm->add("o", Command::ENTER_INSERT_MODE_NEXT_LINE, nullptr, false); + dcm->add("p", Command::PUT, nullptr, false); + dcm->add("P", Command::PUT_BEFORE, nullptr, false); + + dcm->add("a", Command::ENTER_INSERT_MODE_AFTER_CHAR, nullptr, false); + dcm->add("s", Command::CHANGE_CHAR, nullptr, false); dcm->add("d", Command::DELETE_MOTION, motion_map, false); dcm->add("dd", Command::DELETE_LINE, nullptr, false); + dcm->add("f", Command::GO_FORWARD_ON_TO_CHAR, nullptr, true); + dcm->add("F", Command::GO_BACK_ON_TO_CHAR, nullptr, true); + dcm->add("gg", Command::GO_TO_LINE, nullptr, false); + dcm->add("h", Command::GO_LEFT, nullptr, false); + dcm->add("j", Command::GO_DOWN, nullptr, false); + dcm->add("k", Command::GO_UP, nullptr, false); + dcm->add("l", Command::GO_RIGHT, nullptr, false); + dcm->add("x", Command::DELETE_CHAR, nullptr, false); dcm->add("X", Command::DELETE_CHAR_BACK, nullptr, false); dcm->add("c", Command::CHANGE_MOTION, motion_map, false); dcm->add("cc", Command::CHANGE_LINE, nullptr, false); + dcm->add("n", Command::NEXT, nullptr, false); + dcm->add("N", Command::PREV, nullptr, false); }