diff --git a/modules/lang/ledger/config.el b/modules/lang/ledger/config.el index db45992a6..168f96bfe 100644 --- a/modules/lang/ledger/config.el +++ b/modules/lang/ledger/config.el @@ -47,30 +47,42 @@ :hook (ledger-mode . evil-ledger-mode) :config (set-evil-initial-state! 'ledger-report-mode 'normal) - (map! :map ledger-report-mode-map - :n "q" #'ledger-report-quit - :n "RET" #'ledger-report-edit-report - :n "gd" #'ledger-report-visit-source - :n "gr" #'ledger-report-redo - :map ledger-mode-map - :m "]]" #'ledger-navigate-next-xact-or-directive - :m "[[" #'ledger-navigate-prev-xact-or-directive + (map! (:map ledger-report-mode-map + :n "q" #'ledger-report-quit + :n "RET" #'ledger-report-edit-report + :n "gd" #'ledger-report-visit-source + :n "gr" #'ledger-report-redo + ;; This is redundant, but helps `substitute-command-keys' find them + ;; below, in `+ledger--fix-key-help-a'. + :n "C-d" #'evil-scroll-down + :n "C-u" #'evil-scroll-up) + (:map ledger-mode-map + :m "]]" #'ledger-navigate-next-xact-or-directive + :m "[[" #'ledger-navigate-prev-xact-or-directive) - :localleader - :map ledger-mode-map - "a" #'ledger-add-transaction - "e" #'ledger-post-edit-amount - "t" #'ledger-toggle-current - "d" #'ledger-delete-current-transaction - "r" #'ledger-report - "R" #'ledger-reconcile - "s" #'ledger-sort-region - "S" #'ledger-schedule-upcoming - (:prefix "g" + (:localleader + :map ledger-mode-map + "a" #'ledger-add-transaction + "e" #'ledger-post-edit-amount + "t" #'ledger-toggle-current + "d" #'ledger-delete-current-transaction + "r" #'ledger-report + "R" #'ledger-reconcile + "s" #'ledger-sort-region + "S" #'ledger-schedule-upcoming + (:prefix "g" "s" #'ledger-display-ledger-stats - "b" #'ledger-display-balance-at-point)) + "b" #'ledger-display-balance-at-point))) - (defadvice! +ledger--fix-key-help-a (&rest _) + (defadvice! +ledger--fix-key-help-a (orig-fn &rest args) "Fix inaccurate keybind message." - :after #'ledger-report - (message "q to quit; gr to redo; RET to edit; C-c C-s to save"))) + :around #'ledger-report + (quiet! (apply orig-fn args)) + (with-current-buffer (get-buffer ledger-report-buffer-name) + (setq header-line-format + (substitute-command-keys + (concat "\\[ledger-report-quit] to quit; " + "\\[ledger-report-redo] to redo; " + "\\[ledger-report-edit-report] to edit; " + "\\[ledger-report-save] to save; " + "\\[evil-scroll-up] and \\[evil-scroll-down] to scroll"))))))