I have the hard time straggling of passing elisp keymap to a custom function. I expect that after major mode has loaded (in my case it's clojure-mode) my new keybindings become available, but they don't:
;;; Settings.
(straight-use-package 'paredit)
(defun my/shared-lisp-mode-hook ()
(require 'paredit)
(my/vim-paredit-init clojure-mode-map))
;;; Clojure.
(straight-use-package 'cider)
;; This doesn't work.
(defun my/vim-paredit-init (map)
(evil-define-key 'normal map (kbd "<localleader>r") #'paredit-raise-sexp))
;; This works, but not what I want.
;; (defun my/vim-paredit-init (map)
;; (evil-define-key 'normal clojure-mode-map (kbd "<localleader>r") #'paredit-raise-sexp))
(defun my/clojure-mode-hook ()
(my/shared-lisp-mode-hook))
(add-hook 'clojure-mode-hook #'my/clojure-mode-hook)
I know I miss something conceptual and trivial, but couldn't come up to any, but duplicating paredit key bindings for all major modes: elisp, clojure, which I want to avoid...
evil-mode
but the discussion suggests to me that you need to run some update function, such asevil-normalize-maps
, afterevil-define-key
.