anythingのキーバインド

以前,anythingのキーバインドを変更したけど書いてなかったので書く.増えた部分の近辺.

(defvar anything-call-source-buffer "*anything source select*")
(defvar anything-c-source-call-source
  `((name . "Call anything source")
    (candidate-number-limit . 9999)
    (candidates
     . (lambda ()
         (loop for vname in (all-completions "anything-c-source-" obarray)
               for var = (intern vname)
               for name = (ignore-errors (assoc-default 'name (symbol-value var)))
               if name collect (cons (format "%s (%s)" name vname) var))))
    (action . (("Invoke anything with selected source" .
                (lambda (candidate)
                  (anything candidate nil nil nil nil
                            anything-call-source-buffer)))
               ("Describe variable" . describe-variable)))
    (persistent-action . describe-variable)))

(defun anything-call-source ()
  "Call anything source."
  (interactive)
  (anything 'anything-c-source-call-source nil nil nil nil
            anything-call-source-buffer))

(define-key anything-map (kbd "C-v") 'anything-next-source)
(define-key anything-map (kbd "M-v") 'anything-previous-source)

(defvar anything-sources-emacs (list anything-c-source-emacs-variables
                                     anything-c-source-emacs-functions))

(defun anything-emacs ()
  (interactive)
  (anything anything-sources-emacs))

(defvar anything-prefix-map)
(define-prefix-command 'anything-prefix-map)
(global-set-key (kbd "C-;") 'anything-prefix-map)
(define-key anything-prefix-map (kbd "C-f") 'anything)
(define-key anything-prefix-map (kbd "C-h") 'anything-emacs)

C-;をanything-prefix-mapにしてそこにいろいろキーを振るようにした.
そういえばanything-call-sourceに何も振ってないなぁ.


参考:
anything.elの情報源を選択する(改訂版) - http://rubikitch.com/に移転しました