История изменений
Исправление xaizek, (текущая версия) :
Обработка ввода – песня на сотни строк:
А как по-другому?
Массивом структур, каждая их которых описывает сочетание. В Vim тоже есть if
-else
, но там на верхнем уровне (самом большом, т.к. для первого символа) используется таблица. Пример из Vifm:
{WK_d WK_p, {{&cmd_dp}, .descr = "put current file"}},
{WK_D, {{&cmd_D_selector}, FOLLOWED_BY_SELECTOR, .descr = "remove files permanently"}},
{WK_d, {{&cmd_d_selector}, FOLLOWED_BY_SELECTOR, .descr = "remove files"}},
{WK_e, {{&cmd_e}, .descr = "explore file contents"}},
{WK_f, {{&cmd_f}, FOLLOWED_BY_MULTIKEY, .descr = "char-search forward"}},
{WK_g WK_A, {{&cmd_gA}, .descr = "(re)calculate size"}},
Просто без чего-то подобного пользовательские сочетания клавишь реализовать всё равно не получится. И странно, что пишут клон Vim, не уделив внимания его системе ввода как его главной особенности.
Исходная версия xaizek, :
Обработка ввода – песня на сотни строк:
А как по-другому?
Массивом структур, каждая их которых описывает сочетание. В Vim тоже есть if
-else
, но там на верхнем уровне (самом большом, т.к. для первого символа) используется таблица. Пример из Vifm:
{WK_d WK_p, {{&cmd_dp}, .descr = "put current file"}},
{WK_D, {{&cmd_D_selector}, FOLLOWED_BY_SELECTOR, .descr = "remove files permanently"}},
{WK_d, {{&cmd_d_selector}, FOLLOWED_BY_SELECTOR, .descr = "remove files"}},
{WK_e, {{&cmd_e}, .descr = "explore file contents"}},
{WK_f, {{&cmd_f}, FOLLOWED_BY_MULTIKEY, .descr = "char-search forward"}},
{WK_g WK_A, {{&cmd_gA}, .descr = "(re)calculate size"}},
Просто без чего-то подобного пользовательские сочетания клавишь реализовать всё равно не получится.