Change it to accept keyword args for nicer calls

This commit is contained in:
Kashish Sharma 2015-11-26 05:50:25 +05:30
parent b8820cf465
commit d547f002f5
1 changed files with 29 additions and 38 deletions

67
init.el
View File

@ -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 "<f6>") erc)
(,(kbd "<f7>") eww))
'global)
(and (equal 'erc (lookup-key (current-global-map) (kbd "<f6>")))
(equal 'eww (lookup-key (current-global-map) (kbd "<f7>")))))
(progn
(cp-set-keys `((,(kbd "<f6>") erc)
(,(kbd "<f7>") eww))
'global 'unset)
(and (equal nil (lookup-key (current-global-map) (kbd "<f6>")))
(equal nil (lookup-key (current-global-map) (kbd "<f7>")))))
(progn
(cp-set-keys `((,(kbd "<f6>") erc)
(,(kbd "<f7>") eww))
emacs-lisp-mode-map)
(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))
emacs-lisp-mode-map 'unset)
(and (equal nil (lookup-key emacs-lisp-mode-map (kbd "<f6>")))
(equal nil (lookup-key emacs-lisp-mode-map (kbd "<f7>")))))
(progn
(cp-set-keys `((,(kbd "<f6>") erc)
(,(kbd "<f7>") eww))
'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>")))))
(progn (cp-set-keys :keymap-or-local 'global
:key-fn-alist `((,(kbd "<f6>") erc) (,(kbd "<f7>") eww)))
(and (equal 'erc (lookup-key (current-global-map) (kbd "<f6>")))
(equal 'eww (lookup-key (current-global-map) (kbd "<f7>")))))
(progn (cp-set-keys :keymap-or-local 'global
:unset 'unset
:key-fn-alist `((,(kbd "<f6>") erc) (,(kbd "<f7>") eww)))
(and (equal nil (lookup-key (current-global-map) (kbd "<f6>")))
(equal nil (lookup-key (current-global-map) (kbd "<f7>")))))
(progn (cp-set-keys :keymap-or-local emacs-lisp-mode-map
:key-fn-alist `((,(kbd "<f6>") erc) (,(kbd "<f7>") eww)))
(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 :keymap-or-local emacs-lisp-mode-map
:unset 'unset
:key-fn-alist `((,(kbd "<f6>") erc) (,(kbd "<f7>") eww)))
(and (equal nil (lookup-key emacs-lisp-mode-map (kbd "<f6>")))
(equal nil (lookup-key emacs-lisp-mode-map (kbd "<f7>")))))
(progn (cp-set-keys :keymap-or-local 'local
:key-fn-alist `((,(kbd "<f6>") erc) (,(kbd "<f7>") eww)))
(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 :keymap-or-local 'local
:unset 'unset
:key-fn-alist `((,(kbd "<f6>") erc) (,(kbd "<f7>") eww)))
(and (equal nil (lookup-key emacs-lisp-mode-map (kbd "<f6>")))
(equal nil (lookup-key emacs-lisp-mode-map (kbd "<f7>")))))
;;;; UTF-8 magic
(setq locale-coding-system 'utf-8)