Я просмотрел свои файлы конфигурации и хотел сделать некоторую очистку.
Насколько я понимаю with-eval-after-load
, его тело будет оцениваться сразу после загрузки соответствующего пакета. Очистив мои файлы конфигурации и разделив их еще больше, я хотел заключить каждую конфигурацию пакета в with-eval-after-load
. Все прошло как ожидалось, пока я не приложил конфигурацию для helm
и helm-projectile
.
Вот что я имел в виду ( lisp / init-helm.el ):
(with-eval-after-load 'helm
(setq helm-mode-line-string "")
(add-to-list 'helm-sources-using-default-as-input 'helm-source-man-pages)
(define-key global-map (kbd "C-c m") 'helm-imenu)
(define-key global-map (kbd "C-x b") 'helm-buffers-list))
(with-eval-after-load 'helm-command
(global-set-key (kbd "M-x") 'helm-M-x))
(with-eval-after-load 'helm-projectile
(helm-projectile-on))
После перезапуска Emacs у меня возникает проблема с размером окна:
Вот как я изменяю размер моего окна:
(set-frame-parameter nil 'fullscreen 'fullboth)
Я предполагаю, что неправильно использую with-eval-after-load
, как можно продезинфицировать его конфигурацию Emacs и убедиться, что ничего не сломалось, независимо от того, какой пакет установлен?
with-eval-after-load
чтобы обернуть все мои настройки, связанные с пакетами, один раз. Затем я увидел свет и начал использоватьuse-package
вместо этого.(package-initialize)
и заменил его,(require 'use-package)
но я получу ошибку файла: не могу открыть файл загрузки, такой файл или каталог, use-package при перезапуске Emacs. И все же, как только Emacs запустится, я смогу начать(require 'use-package)
без проблем. Наконец, я даже попробовалwith-eval-after-load
, все та же ошибка. В файле readme не очень ясно, как устанавливатьuse-package
при использовании пакетов из package.el..emacs
, предпочтительно урезанную версию, которая демонстрирует проблему с таким количеством строк и как можно меньшим количеством внешних пакетов. Это, вероятно, связано с синхронизацией настройки фрейма и загрузкой пакета во время запуска . Но не увидев ваш код, мы мало что можем сделать. Также скажите нам, какую версию Emacs вы используете.Ответы:
Я
with-eval-after-load
часто использую , в основном для добавления или удаления элементов в или из списков после оценки значений по умолчанию. Таким образом, мне не нужно отслеживать изменения значений по умолчанию.Что касается проблемы с вашей
helm
инициализацией, документация рекомендует, чтобы(require 'helm-config)
она присутствовала в вашихinit.el
или его зависимостях.Я обнаружил, что проще просто потребовать
helm-config
во время инициализации, а не полагаться на негоautoload
, тем более что я все равно загружал бы его почти сразу большую часть времени.источник
use-package
, и даже при необходимостиhelm-config
я все еще получаю ту же проблему. Вот моя обновленная конфигурация конфигурации: bitbucket.org/angrybacon/dotemacs/src .Оказывается, это не имеет ничего общего с
helm
инициализацией (или мало).В своем вечном стремлении оптимизировать время запуска Emacs я перенес все связанные с интерфейсом вещи в самом начале своей конфигурации. Это включает в себя псевдоэкран, который я использую.
Помещение соответствующей строки до того, как какой-либо тяжелый список был загружен, устранило мою проблему.
Вот моя конфигурация для справки .
источник