emacsで、anythingを使用してelisp-jaマニュアルを引く
2009-12-05 - Secondary Storageで、elispマニュアルの日本語をいれたのですが、今回は、そのマニュアルをanythingを使用して引けるようにします。
anything-config.elに定義されている、 anything-c-info-elisp-ja を元に作成しました。
下記を.emacsに追記して、 また、anything-sources に anything-c-source-info-elisp-ja を追加してください。
私は、elisp(英語版)と、elisp-ja(日本語版)の二つのinfoを共存させているので、下記のような定義が必要になっています。もし、日本語のelispマニュアルのインデックス名が「elisp」であれば、下記設定をせずとも表示できると思います。
;; Info Elisp-JA (defvar anything-c-info-elisp-ja nil) (defvar anything-c-source-info-elisp-ja `((name . "Info Elisp") (init . (lambda () (save-window-excursion (unless anything-c-info-elisp-ja (with-temp-buffer (Info-find-node "elisp-ja" "Index") (setq anything-c-info-elisp-ja (split-string (buffer-string) "\n")) (Info-exit)))))) (candidates . (lambda () (loop for i in anything-c-info-elisp-ja if (string-match "^* [^ \n]+[^: ]" i) collect (match-string 0 i)))) (action . (lambda (candidate) (Info-find-node "elisp-ja" "Index") (Info-index (replace-regexp-in-string "* " "" candidate)))) (volatile) (requires-pattern . 2))) ;; (anything 'anything-c-source-info-elisp-ja) ;; info情報の再構築 ;; そうしないと anything-c-source-info-elisp-ja の開く際にエラーとなる (info-lookup-reset)
ディレクトリ毎に分けられたinfoを一元化してあげないと、anythingを起動するときにelisp-jaのノードがないといわれるため、「(info-lookup-reset)」をしてinfo情報の再構築を行っています。