Add several more commands

This commit is contained in:
Josh Holtrop 2017-10-31 22:24:57 -04:00
parent 7dbd9402c1
commit e58d8a4500
2 changed files with 47 additions and 8 deletions

View File

@ -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,
};

View File

@ -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);
}