第二回 init.el読書会に参加しました
第二回は yoshitiaさんでした.
以下気になった箇所を示します.
(今は直っているかもしれません)
default-directoryに設定する値は最後が必ず '/'
(let ((default-directory (expand-file-name "~/.emacs.d/elisp"))) (add-to-list 'load-path default-directory) (if (fboundp 'normal-top-level-add-subdirs-to-load-path) (normal-top-level-add-subdirs-to-load-path)))
とあるのですが, これでは default-directoryは ~/.emacs.d/になって
しまい, ~/.emacs.d/elispに設定されません.ディレクトリを示す場合は
最後は'/'でないといけません. default-directoryに設定する値があれば,
file-name-as-directoryしておくと, 末尾に '/'がなければ付与してくれる
ので無難です.
うまくいかない例
(let ((default-directory "~/.emacs.d/elisp")) (message "%s" (shell-command-to-string "pwd")))
これの結果は /home/yourname/.emacs.dとなります
正しくは以下のとおりです.
(let ((default-directory "~/.emacs.d/elisps/")) (message "%s" (shell-command-to-string "pwd")))
marmaladeより melpa-stableの方がよい
marmaladeにしかないというパッケージをインストールするのであれば,
marmaladeを登録しておくべきですが, そうでなければ melpa-stableの
方がいいです. melpaができてから, marmaladeは stable版を置くという
目的で利用されていましたが, 現在目的のための melpa-stableができた
ので marmaladeを安定版利用のために利用する目的はなくなりました.
marmaladeはいくらかの自動化はできますが, 基本手動なのでパッケージに
よってはすごく古いままというものもあります. melpa-stableはバージョン
っぽいタグを打つと更新されるので, パッケージ管理者にも優しいシステム
です. タグを打っていないパッケージがあれば, 作者をつついて打ってもらえば
よいでしょう.
quickrun.elのロードは不要
ここでは quickrunだけですが, パッケージ管理ツールを使ってインストールした
場合, パッケージで定義される変数がすぐに必要になる場合を除けばロードは
不要です(変数を利用する場合も eval-after-loadを使えばロード不要です.)
もしパッケージをロードしないと使えないという場合は, パッケージの作成方法に
問題があると思ってよいです. 特別な場合もごく一部ありますが, もしロードが
必要だったら作者にお知らせした方がいいです.
おわりに
次回は 9月 20日 22時からです.
(これを書いている 10分後)