新年明けましたしちょっと気分を入れ替えてみましょう、ということで
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が何をやっているのか」の意味が何となく分かるような気がする。