aboutsummaryrefslogtreecommitdiff
path: root/vis-cmds.c
diff options
context:
space:
mode:
authorMarc André Tanner <mat@brain-dump.org>2016-02-10 22:56:37 +0100
committerMarc André Tanner <mat@brain-dump.org>2016-02-10 22:56:37 +0100
commit534000b7831a6b536353053e47d582cf6c7f3053 (patch)
tree81bef9ef5089c168d68407af9f1876697ba81223 /vis-cmds.c
parent197ab824206335eab7ceed774ddeccac18fafc09 (diff)
downloadvis-534000b7831a6b536353053e47d582cf6c7f3053.tar.gz
vis-534000b7831a6b536353053e47d582cf6c7f3053.tar.xz
vis: tweak <F1> help text list all available key actions
Diffstat (limited to 'vis-cmds.c')
-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;
}