aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--vis-cmds.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/vis-cmds.c b/vis-cmds.c
index 79d292a..ecb13c0 100644
--- a/vis-cmds.c
+++ b/vis-cmds.c
@@ -961,9 +961,9 @@ static bool cmd_earlier_later(Vis *vis, Filerange *range, enum CmdOpt opt, const
return pos != EPOS;
}
-bool print_keybinding(const char *key, void *value, void *data) {
- Text *txt = (Text*)data;
- KeyBinding *binding = (KeyBinding*)value;
+static bool print_keybinding(const char *key, void *value, void *data) {
+ Text *txt = data;
+ KeyBinding *binding = value;
const char *desc = binding->alias;
if (!desc && binding->action)
desc = binding->action->help;
@@ -976,6 +976,12 @@ static void print_mode(Mode *mode, Text *txt) {
map_iterate(mode->bindings, print_keybinding, txt);
}
+static bool print_action(const char *key, void *value, void *data) {
+ Text *txt = data;
+ KeyAction *action = value;
+ return text_appendf(txt, " %-30s\t%s\n", key, action->help);
+}
+
static bool cmd_help(Vis *vis, Filerange *range, enum CmdOpt opt, const char *argv[]) {
if (!vis_window_new(vis, NULL))
return false;
@@ -1000,6 +1006,9 @@ static bool cmd_help(Vis *vis, Filerange *range, enum CmdOpt opt, const char *ar
for (Command *cmd = cmds; cmd && cmd->name[0]; cmd++)
text_appendf(txt, " %s\n", cmd->name[0]);
+ text_appendf(txt, "\n Key binding actions\n\n");
+ map_iterate(vis->actions, print_action, txt);
+
text_save(txt, NULL);
return true;
}