diff --git a/init.el b/init.el index 379b654..1ecd363 100644 --- a/init.el +++ b/init.el @@ -31,7 +31,8 @@ KEY-FN-ALIST must be in the form `((,(kbd \"...\") FN) ...)" (local-set-key (car b) (cadr b))) 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. KEY-FN-ALIST must be in the form `((,(kbd \"...\") FN) ...) @@ -57,7 +58,6 @@ applicable." ((or `global `nil) #'global-unset-key) (`local #'local-unset-key) (x #'define-key))))) - (if (eq key-function 'define-key) (if unset (mapc (lambda (b) @@ -75,42 +75,33 @@ applicable." key-fn-alist))))) ;; tests -(progn - (cp-set-keys `((,(kbd "") erc) - (,(kbd "") eww)) - 'global) - (and (equal 'erc (lookup-key (current-global-map) (kbd ""))) - (equal 'eww (lookup-key (current-global-map) (kbd ""))))) -(progn - (cp-set-keys `((,(kbd "") erc) - (,(kbd "") eww)) - 'global 'unset) - (and (equal nil (lookup-key (current-global-map) (kbd ""))) - (equal nil (lookup-key (current-global-map) (kbd ""))))) -(progn - (cp-set-keys `((,(kbd "") erc) - (,(kbd "") eww)) - emacs-lisp-mode-map) - (and (equal 'erc (lookup-key emacs-lisp-mode-map (kbd ""))) - (equal 'eww (lookup-key emacs-lisp-mode-map (kbd ""))))) -(progn - (cp-set-keys `((,(kbd "") erc) - (,(kbd "") eww)) - emacs-lisp-mode-map 'unset) - (and (equal nil (lookup-key emacs-lisp-mode-map (kbd ""))) - (equal nil (lookup-key emacs-lisp-mode-map (kbd ""))))) -(progn - (cp-set-keys `((,(kbd "") erc) - (,(kbd "") eww)) - 'local) - (and (equal 'erc (lookup-key emacs-lisp-mode-map (kbd ""))) - (equal 'eww (lookup-key emacs-lisp-mode-map (kbd ""))))) -(progn - (cp-set-keys `((,(kbd "") erc) - (,(kbd "") eww)) - 'local 'unset) - (and (equal nil (lookup-key emacs-lisp-mode-map (kbd ""))) - (equal nil (lookup-key emacs-lisp-mode-map (kbd ""))))) +(progn (cp-set-keys :keymap-or-local 'global + :key-fn-alist `((,(kbd "") erc) (,(kbd "") eww))) + (and (equal 'erc (lookup-key (current-global-map) (kbd ""))) + (equal 'eww (lookup-key (current-global-map) (kbd ""))))) +(progn (cp-set-keys :keymap-or-local 'global + :unset 'unset + :key-fn-alist `((,(kbd "") erc) (,(kbd "") eww))) + (and (equal nil (lookup-key (current-global-map) (kbd ""))) + (equal nil (lookup-key (current-global-map) (kbd ""))))) +(progn (cp-set-keys :keymap-or-local emacs-lisp-mode-map + :key-fn-alist `((,(kbd "") erc) (,(kbd "") eww))) + (and (equal 'erc (lookup-key emacs-lisp-mode-map (kbd ""))) + (equal 'eww (lookup-key emacs-lisp-mode-map (kbd ""))))) +(progn (cp-set-keys :keymap-or-local emacs-lisp-mode-map + :unset 'unset + :key-fn-alist `((,(kbd "") erc) (,(kbd "") eww))) + (and (equal nil (lookup-key emacs-lisp-mode-map (kbd ""))) + (equal nil (lookup-key emacs-lisp-mode-map (kbd ""))))) +(progn (cp-set-keys :keymap-or-local 'local + :key-fn-alist `((,(kbd "") erc) (,(kbd "") eww))) + (and (equal 'erc (lookup-key emacs-lisp-mode-map (kbd ""))) + (equal 'eww (lookup-key emacs-lisp-mode-map (kbd ""))))) +(progn (cp-set-keys :keymap-or-local 'local + :unset 'unset + :key-fn-alist `((,(kbd "") erc) (,(kbd "") eww))) + (and (equal nil (lookup-key emacs-lisp-mode-map (kbd ""))) + (equal nil (lookup-key emacs-lisp-mode-map (kbd ""))))) ;;;; UTF-8 magic (setq locale-coding-system 'utf-8)