I set the "help keys" to nil so that the help is still available during
resizing. Those are the keys I want to remove afterwards. The
default value
in the sparse keymap bw-keymap is:
(define-key bw-keymap [t] 'bw-exit-resize-mode)
I see. Coming from a functional programming background, I'd use anoter
approach based on the idea of reusing the original value rather than
using
side-effects to try and coerce it back to the same shape it had
originally:
(defvar bw-keymap
(let ((map (make-sparse-keymap)))
(define-key map [t] 'bw-exit-resize-mode)
map))
then when adding help-event-list bindings:
(setq bw-keymap (let ((map (make-sparse-keymap)))
(set-keymap-parent map bw-keymap)
map))
;; dolist is more efficient than mapc.
(dolist (key help-event-list)
(define-key bw-keymap (vector key) nil))
and when you want to remove those keys, just do
(setq bw-keymap (keymap-parent bw-keymap))
Of course, you can use variants of it, e.g. introduce a "bw-basic-map"
variable to keep the original map, rather than rely on (keymap-parent
bw-keymap) holding that original map.