ここから本文です
Emacs高速化
auto-completeの重ための情報源を止める
この記事は、ちょっと検証中のものを含んでいます。auto-completeの最適化が普段の体感速度に影響するのは間違い無いんですが、どこをどうダイエットするかは、もうすこし吟味します。
auto-completeを手動スタートしているひとはあまり知らないかもしれませんが、
(setq ac-auto-start t) (setq ac-auto-show-menu 0.1)
みたいなことをしていると、特に以下のような動的な情報源を使っているようなauto-completeをオンにしていると、目に見えて重たくなります。
(add-hook 'emacs-lisp-mode-hook (lambda () (add-to-list 'ac-sources 'ac-source-symbols t)))
この手のやつを外していくと、打鍵がたいへん早くなります。
elispのsymbolを補完したかったら、自作辞書に自分で足していくので、十分……というか、auto-completeしたいような語彙って、だいたい収斂していくので、自作辞書ひとつだけにしたほうが、よく使う補完候補に素早くアクセスできるので、全体的なスピードも向上します。
web-mode
シンタックスカラーリングやインデントで便利なweb-modeですが、これでもたつくので停止。
(setq-default web-mode-ignore-ac-start-advice t)
once-in-a-day
https://gist.github.com/jidaikobo-shibata/33e072cea6aa96a19f58
を使うと、1日に一回の処理を書けます。こちらは起動高速化ですかね。
package-refresh-contentsみたいな重たい処理は、
(when (or noninteractive (is-once-in-a-day)) (package-refresh-contents))
としたら、さくっと飛ばせます。
package-refresh-contents自体、必要なときだけ手動でかけるというのも賢いかも。
* * *
once-in-a-dayにちょっと追記。るびきちさんのEmacs塾でこの件を話し合ったのですが、やっぱり「必要なときに走らせる」が、妥当ですね。起動のたびにpackage-refresh-contentsはそもそもやめてしまいました。
ジャンル: Emacs