Change it to accept keyword args for nicer calls
This commit is contained in:
parent
b8820cf465
commit
d547f002f5
67
init.el
67
init.el
|
@ -31,7 +31,8 @@ KEY-FN-ALIST must be in the form `((,(kbd \"...\") FN) ...)"
|
||||||
(local-set-key (car b) (cadr b)))
|
(local-set-key (car b) (cadr b)))
|
||||||
key-fn-alist))
|
key-fn-alist))
|
||||||
|
|
||||||
(defun cp-set-keys (key-fn-alist &optional keymap-or-local unset)
|
(require 'cl)
|
||||||
|
(cl-defun cp-set-keys (&key key-fn-alist keymap-or-local unset)
|
||||||
"A clean way to set/unset many keybindings.
|
"A clean way to set/unset many keybindings.
|
||||||
|
|
||||||
KEY-FN-ALIST must be in the form `((,(kbd \"...\") FN) ...)
|
KEY-FN-ALIST must be in the form `((,(kbd \"...\") FN) ...)
|
||||||
|
@ -57,7 +58,6 @@ applicable."
|
||||||
((or `global `nil) #'global-unset-key)
|
((or `global `nil) #'global-unset-key)
|
||||||
(`local #'local-unset-key)
|
(`local #'local-unset-key)
|
||||||
(x #'define-key)))))
|
(x #'define-key)))))
|
||||||
|
|
||||||
(if (eq key-function 'define-key)
|
(if (eq key-function 'define-key)
|
||||||
(if unset
|
(if unset
|
||||||
(mapc (lambda (b)
|
(mapc (lambda (b)
|
||||||
|
@ -75,42 +75,33 @@ applicable."
|
||||||
key-fn-alist)))))
|
key-fn-alist)))))
|
||||||
|
|
||||||
;; tests
|
;; tests
|
||||||
(progn
|
(progn (cp-set-keys :keymap-or-local 'global
|
||||||
(cp-set-keys `((,(kbd "<f6>") erc)
|
:key-fn-alist `((,(kbd "<f6>") erc) (,(kbd "<f7>") eww)))
|
||||||
(,(kbd "<f7>") eww))
|
(and (equal 'erc (lookup-key (current-global-map) (kbd "<f6>")))
|
||||||
'global)
|
(equal 'eww (lookup-key (current-global-map) (kbd "<f7>")))))
|
||||||
(and (equal 'erc (lookup-key (current-global-map) (kbd "<f6>")))
|
(progn (cp-set-keys :keymap-or-local 'global
|
||||||
(equal 'eww (lookup-key (current-global-map) (kbd "<f7>")))))
|
:unset 'unset
|
||||||
(progn
|
:key-fn-alist `((,(kbd "<f6>") erc) (,(kbd "<f7>") eww)))
|
||||||
(cp-set-keys `((,(kbd "<f6>") erc)
|
(and (equal nil (lookup-key (current-global-map) (kbd "<f6>")))
|
||||||
(,(kbd "<f7>") eww))
|
(equal nil (lookup-key (current-global-map) (kbd "<f7>")))))
|
||||||
'global 'unset)
|
(progn (cp-set-keys :keymap-or-local emacs-lisp-mode-map
|
||||||
(and (equal nil (lookup-key (current-global-map) (kbd "<f6>")))
|
:key-fn-alist `((,(kbd "<f6>") erc) (,(kbd "<f7>") eww)))
|
||||||
(equal nil (lookup-key (current-global-map) (kbd "<f7>")))))
|
(and (equal 'erc (lookup-key emacs-lisp-mode-map (kbd "<f6>")))
|
||||||
(progn
|
(equal 'eww (lookup-key emacs-lisp-mode-map (kbd "<f7>")))))
|
||||||
(cp-set-keys `((,(kbd "<f6>") erc)
|
(progn (cp-set-keys :keymap-or-local emacs-lisp-mode-map
|
||||||
(,(kbd "<f7>") eww))
|
:unset 'unset
|
||||||
emacs-lisp-mode-map)
|
:key-fn-alist `((,(kbd "<f6>") erc) (,(kbd "<f7>") eww)))
|
||||||
(and (equal 'erc (lookup-key emacs-lisp-mode-map (kbd "<f6>")))
|
(and (equal nil (lookup-key emacs-lisp-mode-map (kbd "<f6>")))
|
||||||
(equal 'eww (lookup-key emacs-lisp-mode-map (kbd "<f7>")))))
|
(equal nil (lookup-key emacs-lisp-mode-map (kbd "<f7>")))))
|
||||||
(progn
|
(progn (cp-set-keys :keymap-or-local 'local
|
||||||
(cp-set-keys `((,(kbd "<f6>") erc)
|
:key-fn-alist `((,(kbd "<f6>") erc) (,(kbd "<f7>") eww)))
|
||||||
(,(kbd "<f7>") eww))
|
(and (equal 'erc (lookup-key emacs-lisp-mode-map (kbd "<f6>")))
|
||||||
emacs-lisp-mode-map 'unset)
|
(equal 'eww (lookup-key emacs-lisp-mode-map (kbd "<f7>")))))
|
||||||
(and (equal nil (lookup-key emacs-lisp-mode-map (kbd "<f6>")))
|
(progn (cp-set-keys :keymap-or-local 'local
|
||||||
(equal nil (lookup-key emacs-lisp-mode-map (kbd "<f7>")))))
|
:unset 'unset
|
||||||
(progn
|
:key-fn-alist `((,(kbd "<f6>") erc) (,(kbd "<f7>") eww)))
|
||||||
(cp-set-keys `((,(kbd "<f6>") erc)
|
(and (equal nil (lookup-key emacs-lisp-mode-map (kbd "<f6>")))
|
||||||
(,(kbd "<f7>") eww))
|
(equal nil (lookup-key emacs-lisp-mode-map (kbd "<f7>")))))
|
||||||
'local)
|
|
||||||
(and (equal 'erc (lookup-key emacs-lisp-mode-map (kbd "<f6>")))
|
|
||||||
(equal 'eww (lookup-key emacs-lisp-mode-map (kbd "<f7>")))))
|
|
||||||
(progn
|
|
||||||
(cp-set-keys `((,(kbd "<f6>") erc)
|
|
||||||
(,(kbd "<f7>") eww))
|
|
||||||
'local 'unset)
|
|
||||||
(and (equal nil (lookup-key emacs-lisp-mode-map (kbd "<f6>")))
|
|
||||||
(equal nil (lookup-key emacs-lisp-mode-map (kbd "<f7>")))))
|
|
||||||
|
|
||||||
;;;; UTF-8 magic
|
;;;; UTF-8 magic
|
||||||
(setq locale-coding-system 'utf-8)
|
(setq locale-coding-system 'utf-8)
|
||||||
|
|
Loading…
Reference in New Issue