vis
a vi-like editor based on Plan 9's structural regular expressions
git clone https://9o.is/git/vis.git
commit 2c8d38d47bceb57c183e3a821dbcc9d228dd53b2 parent 1fea2f78056f541eb152a6d48f54b595e7c8bb0d Author: Marc André Tanner <mat@brain-dump.org> Date: Sat, 20 Feb 2016 15:38:02 +0100 vis: list layout specifc key mappings in <F1> help output Diffstat:
| M | vis-cmds.c | | | 10 | ++++++++++ |
1 file changed, 10 insertions(+), 0 deletions(-)
diff --git a/vis-cmds.c b/vis-cmds.c @@ -964,6 +964,10 @@ static bool cmd_earlier_later(Vis *vis, Filerange *range, enum CmdOpt opt, const return pos != EPOS; } +static bool print_keylayout(const char *key, void *value, void *data) { + return text_appendf(data, " %-15s\t%s\n", key, (char*)value); +} + static bool print_keybinding(const char *key, void *value, void *data) { Text *txt = data; KeyBinding *binding = value; @@ -1000,6 +1004,12 @@ static bool cmd_help(Vis *vis, Filerange *range, enum CmdOpt opt, const char *ar text_appendf(txt, " %-15s\t%s\n", mode->name, mode->help); } + + if (!map_empty(vis->keymap)) { + text_appendf(txt, "\n Layout specific mappings (affects all modes except INSERT/REPLACE)\n\n"); + map_iterate(vis->keymap, print_keylayout, txt); + } + print_mode(&vis_modes[VIS_MODE_NORMAL], txt); print_mode(&vis_modes[VIS_MODE_OPERATOR_PENDING], txt); print_mode(&vis_modes[VIS_MODE_VISUAL], txt);