設定を見直し中

新年明けましたしちょっと気分を入れ替えてみましょう、ということで
Emacsテクニックバイブル ?作業効率をカイゼンする200の技?
Emacs Lispテクニックバイブル
を読みながら色々見直してみてる。
https://github.com/sugyan/dotfiles/blob/master/.emacs.el

;; load-path
(add-to-list 'load-path "~/.emacs.d/elisp")
(add-to-list 'load-path "~/.emacs.d/auto-install")

;; auto-install
;; http://www.emacswiki.org/emacs/auto-install.el
;; (auto-install-from-emacswiki "auto-install.el")
(require 'auto-install)
(auto-install-update-emacswiki-package-name t)

;;; init-loader
;; (auto-install-from-url "http://coderepos.org/share/export/39091/lang/elisp/init-loader/init-loader.el")
(require 'init-loader)
;; loads hoge.elc (if exists) or hoge.el
(eval-when-compile (require 'cl))
(flet ((init-loader--re-load-files (re dir &optional sort)
  (loop for el in (directory-files dir t)
        when (and (string-match re (file-name-nondirectory el))
                  (or (string-match "elc$" el)
                      (and (string-match "el$" el)
                           (not (locate-library (concat el "c"))))))
        collect (file-name-nondirectory el) into ret
        finally return (if sort (sort ret 'string<) ret))))
  (init-loader-load))

init-loader.elを使っているのだけど、~/.emacs.d/initディレクトリ以下のファイルたちがバイコンパイルして.elcファイルと両方存在していると両方読み込んでしまうようで、elc優先で片方しか読み込まないようにした修正版があるらしいけど敢えてオリジナルのを使う方向でムリヤリ置換するようにしてみた。

anything.elについてはとりあえずこんなカンジにしてみた。

;;; anything
;; (auto-install-batch "anything-minimal")
(require 'anything-config)
(setq anything-input-idle-delay 0.1)

(define-key global-map (kbd "C-x b") 'anything-for-files)
(define-key global-map (kbd "M-y")   'anything-show-kill-ring)
(define-key global-map (kbd "M-x")
  (lambda ()
    (interactive)
    (anything-other-buffer
     '(anything-c-source-extended-command-history anything-c-source-emacs-commands)
     "*anything emacs commands*")))

通常のコマンドを置き換える形でanythingを使うようにしてみた。バッファ切り替えくらいは1ストロークで出来るようにした方が良いかな…


本を読んでるおかげで、今までよりも「このelispが何をやっているのか」の意味が何となく分かるような気がする。