help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Is there any handy way to view a custom key map?


From: Eduardo Ochs
Subject: Re: Is there any handy way to view a custom key map?
Date: Sat, 15 Jan 2022 13:19:51 -0300

On Sat, 15 Jan 2022 at 12:02, Jean Louis <bugs@gnu.support> wrote:

> I have plethora of various screens displaying lists of items from the
> database. Different database tables have different key maps.
>
> Example:
>
> (defvar rcd-db-mode-map
>   (let ((map (make-sparse-keymap)))
>     (set-keymap-parent map tabulated-list-mode-map)
>     (define-key map (kbd "/") #'rcd-tabulated-filter)
>     (define-key map (kbd "G") #'goto-line)
>     (define-key map (kbd "Q") 'rcd-db-kill-database-buffers)
>     (define-key map (kbd "U") 'rcd-tabulated-remove-marks)
>     (define-key map (kbd "V") #'rcd-tabulated-id-to-register)
>     (define-key map (kbd "\\") #'rcd-tabulated-filter-reset)
>     (define-key map (kbd "d") #'rcd-db-delete-tab-database-entry)
>     (define-key map (kbd "e") #'rcd-db-edit-tab-database-entry)
>     (define-key map (kbd "g") #'rcd-tabulated-refresh)
>     (define-key map (kbd "j") #'next-line)
>     (define-key map (kbd "k") #'previous-line)
>     (define-key map (kbd "m") #'rcd-tabulated-mark-id)
>     (define-key map (kbd "u") #'rcd-tabulated-unmark-id)
>     (define-key map (kbd "z") #'rcd-tabulated-refresh)
>     map)
>   "The basic RCD database keymap")
>
> Similarly to command C-h m I would like to display those key bindings,
> though separate from C-h m screen.
>
> Something like this below would be fine:
>
> Key             Binding
>
> Q               rcd-db-kill-database-buffers
> U               rcd-tabulated-remove-marks
> V               rcd-tabulated-id-to-register
> d               rcd-db-delete-tab-database-entry
>
> I would even prefer that key bindings have their description, so that
> instead of the name of function under "Binding" there appears human
> readable text something like "Remove Marks" instead of
> "rcd-tabulated-remove-marks".
>
>
Hi Jean-Louis,

If you have eev installed, try this:

  (defvar rcd-db-mode-map
    (let ((map (make-sparse-keymap)))
      (set-keymap-parent map tabulated-list-mode-map)
      (define-key map (kbd "/") #'rcd-tabulated-filter)
      (define-key map (kbd "G") #'goto-line)
      (define-key map (kbd "Q") 'rcd-db-kill-database-buffers)
      (define-key map (kbd "U") 'rcd-tabulated-remove-marks)
      (define-key map (kbd "V") #'rcd-tabulated-id-to-register)
      (define-key map (kbd "\\") #'rcd-tabulated-filter-reset)
      (define-key map (kbd "d") #'rcd-db-delete-tab-database-entry)
      (define-key map (kbd "e") #'rcd-db-edit-tab-database-entry)
      (define-key map (kbd "g") #'rcd-tabulated-refresh)
      (define-key map (kbd "j") #'next-line)
      (define-key map (kbd "k") #'previous-line)
      (define-key map (kbd "m") #'rcd-tabulated-mark-id)
      (define-key map (kbd "u") #'rcd-tabulated-unmark-id)
      (define-key map (kbd "z") #'rcd-tabulated-refresh)
      map)
    "The basic RCD database keymap")

  (find-ekeymapdescr rcd-db-mode-map)

The source code of `find-ekeymapdescr' is here,

  http://angg.twu.net/eev-current/eev-blinks.el.html#find-einternals

and it should be easy to adapt it to what you need.

  Cheers,
    Eduardo Ochs
    http://angg.twu.net/#eev


reply via email to

[Prev in Thread] Current Thread [Next in Thread]