Ответ 1
C-u 0 M-x byte-recompile-directory
скомпилирует все файлы .el в каталоге и во всех подкаталогах ниже.
Часть C-u 0
заключается в том, чтобы не спрашивать о каждом файле .el, который не имеет аналога .elc.
Я решил проверить Emacs, и мне это очень понравилось. Теперь я использую Emacs Starter Kit, который предоставляет лучшие настройки по умолчанию и некоторые приятные настройки для установки Emacs по умолчанию.
Я немного настроил его, добавил некоторые вещи, такие как yasnippet, цветные темы, unbound и другие материалы. Я создал репозиторий github, где я сохраняю все настройки, чтобы я мог получить к ним доступ из нескольких мест или в случае, если что-то пойдет не так, и я потеряйте мой каталог .emacs.d.
Все это очень приятно, но есть проблема: Emacs занимает около 1-2 секунд для загрузки. AFAIK Я могу скомпилировать отдельные файлы .el с файлом-байтом M-x в .elc, и он работает. Но есть много файлов .el, и мне интересно, есть ли способ скомпилировать их с помощью простой команды или чего-то еще, чтобы ускорить загрузку Emacs. Мой Emacs не всегда открыт, и я открываю и закрываю его довольно часто, особенно после того, как я настроил его как редактор по умолчанию для команды редактирования в Total Commander, чтобы быстрее привыкнуть к нему (да, здесь windows xp).
Моя версия Emacs - 22.3. И да, установка Emacs по умолчанию без каких-либо настроек запускается мгновенно.
Я не уверен, какая версия предпочтительна при загрузке,.el или скомпилированный .elc, кстати, O.o
Итак, есть ли команда elisp или переключатель командной строки Emacs, чтобы сделать Emacs-компилировать все в директории .emacs.d?
C-u 0 M-x byte-recompile-directory
скомпилирует все файлы .el в каталоге и во всех подкаталогах ниже.
Часть C-u 0
заключается в том, чтобы не спрашивать о каждом файле .el, который не имеет аналога .elc.
Чтобы автоматически байт скомпилировать все, что требуется для компиляции байтов, каждый раз, когда я запускаю emacs, я добавляю следующее после моих изменений в load-path
в верхней части моего файла .emacs
:
(byte-recompile-directory (expand-file-name "~/.emacs.d") 0)
Удивительно, но это не добавляет моего времени загрузки (если что-то не нужно компилировать).
Чтобы ускорить работу emacs, я сначала определил медленные части, используя profile-dotemacs.el, а затем заменил их автозагрузка.
Вы можете использовать флаг --batch
для перекомпиляции из командной строки.
Чтобы перекомпилировать все, сделайте
emacs --batch --eval '(byte-recompile-directory "~/.emacs.d")'
или перекомпилировать один файл как из Makefile,
emacs --batch --eval '(byte-compile-file "your-elisp-file.el")'
Это немного отклоняется от вопроса, но для решения проблемы медленной загрузки вы можете использовать новую функцию демона в Emacs 23.
"Если у вас много пакетов поддержки, запуск emacs может быть немного медленным. Однако emacs 23 приносит emacs --daemon, который позволяет вам запускать emacs в фоновом режиме (например при входе в систему). Вы можете мгновенно всплывают новые окна emacs (фреймы) с emacsclient. Конечно, вы могли бы уже есть сервер emacs 'в более старые версии, но запустите его в фоновом режиме. гораздо более приятное решение"
От http://emacs-fu.blogspot.com/2009/07/emacs-23-is-very-near.html