Другие уже использовали gnuserve
и emacsclient
, и я бы предложил компиляцию в emacs (возможность перехода к ошибкам компиляции - это победа).
Но, в частности, ускорение .emacs может быть сделано:
Байт, компилирующий файл .emacs, который вы можете сделать автоматически, используя этот фрагмент кода
Замена всех операторов (require 'package)
функциональностью autoload ed. Это задержит загрузку lisp до тех пор, пока это действительно не потребуется. Использование этой техники позволило мне ускорить мой запуск с> 6 секунд до <1. Это займет немного работы, потому что не все библиотеки имеют правильную маркировку <code>autoload.
Удаление кода / функциональности, которую вы больше не используете.
Попробуйте запустить emacs с опцией --no-site-file
, чтобы избежать загрузки ненужных пакетов при установке сайта site-start.el
.
Если вы действительно серьезны, вы можете свернуть свои собственные emacs с уже загруженными вашими любимыми функциями. Это, конечно, означает, что более важно вносить изменения в то, что у вас есть в .emacs
, потому что это часть двоичного файла. Перейдите по ссылке для получения информации о том, как использовать dump-emacs
.
Купите более быстрый компьютер и / или более быстрый диск.
Как определить, что загружает ваш .emacs
Теперь, как вы узнаете, что загружает ваш .emacs? С целью убрать функционал или отложить его? Проверьте ваш *Messages*
буфер, который содержит строки вроде:
Loading /home/tjackson/.emacs.tjackson.el (source)...
Loading /home/tjackson/installed/emacs/lisp/loaddefs.el (source)...done
Loading /user/tjackson/.elisp/source/loaddefs.el (source)...done
Loading autorevert...done
Loading /home/tjackson/.emacs.tjackson.el (source)...done
Если вы заметите, операторы Loading
могут быть вложенными: первая .emacs.tjackson.el
заканчивается ...
, а последняя строка показывает, что .emacs.tjackson.el
load - ...done
. Все эти другие файлы загружаются из моего .emacs.tjackson.el
файла. Все остальные нагрузки атомные.
Примечание: Если у вас большой .emacs, возможно, что буфер *Messages*
потеряет некоторые сообщения, потому что он хранит только фиксированный объем информации. Вы можете добавить эту настройку в начале вашего .emacs
, чтобы сохранить все сообщения:
(setq message-log-max t)
Примечание: Если команда 'load
подавит сообщения, если ее четвертый аргумент nomessage
не равен нулю, поэтому удалите все такие вызовы (или посоветуйте * 1076). * и установить четвертый аргумент nil
).