This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2021-02-20
Channels
- # architecture (1)
- # babashka (5)
- # beginners (46)
- # calva (8)
- # cider (12)
- # clj-kondo (2)
- # cljfx (3)
- # clojure (23)
- # clojure-europe (7)
- # clojure-israel (2)
- # clojure-nl (11)
- # clojure-norway (8)
- # clojure-uk (1)
- # clojurescript (27)
- # conjure (2)
- # cursive (50)
- # data-oriented-programming (1)
- # data-science (1)
- # datahike (1)
- # datascript (12)
- # emacs (3)
- # events (1)
- # fulcro (13)
- # lambdaisland (7)
- # leiningen (4)
- # lsp (102)
- # meander (2)
- # off-topic (19)
- # parinfer (3)
- # reveal (8)
- # rewrite-clj (13)
- # shadow-cljs (3)
- # specter (13)
- # tools-deps (6)
- # vim (12)
Good day dear Clojurians. 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...I can’t easily test it here, but I would guess you need to call my/vim-paredit-init with a quoted arg --
(my/vim-paredit-init 'clojure-mode-map)
I’ve tried, doesn’t work