Я обновляю все свои вызовы пакета использования теперь, когда :idle
это уже не приличный способ отложить вещи. На данный момент одним из самых больших ударов в моем времени загрузки является elpy
загрузка целого ряда дополнительных модулей. На данный момент мой вызов довольно прост:
(use-package elpy
:commands elpy-enable
:init (elpy-enable)
:config
(progn
(setq elpy-rpc-backend "jedi"
elpy-rpc-project-specific 't)
(when (fboundp 'flycheck-mode)
(setq elpy-modules (delete 'elpy-module-flymake elpy-modules)))))
Однако это довольно расточительно, если я никогда не редактирую модули Python. Проблема в том, что elpy - это набор режимов, поэтому я не могу просто использовать форму привязки к режиму при elpy-enable
необходимости вызова. Так какой подход я должен использовать. Это просто случай срабатывания на хуке режима Python?
use-package
elpy
stsquad
источник
источник
:idle
может быть заменено чем-то вроде,:defer 30
где число - это задержка в секундах, после которой пакет должен быть загружен.Ответы:
Я не знаю Elpy, поэтому я не уверен, правильно ли я понимаю вашу проблему. Я знаю
use-package
, хотя и в последнее время страдал от той же самой проблемы, а именно удаления:idle
.По сути, есть два выхода, в зависимости от того, как вам нужно использовать Elpy. Вы можете использовать бедного человека
:idle
,run-with-idle-timer
например, сВ качестве альтернативы, вы можете положиться на старый
with-eval-after-load
или использоватьpython-mode-hook
и отложить Elpy до тех пор, пока Python Mode не будет загружен или включен соответственно:источник
:commands elpy-enable
чтобы это работало.:init (with-eval-after-load 'python (elpy-enable)) :commands elpy-enable
Автор elpy предлагает сделать это через совет, потому что
elpy-enable
изменяетpython-mode-hook
переменную, поэтому вызывать ее внутри ловушки режима слишком поздно: https://github.com/jorgenschaefer/elpy/wiki/Configurationпростой подход:
используя
use-package
:источник
README.rst
, но не в первом и наиболее очевидном месте, чтобы посмотреть: раздел установки документации . Я сообщил об этом в выпуске № 1606 .Я думаю, что это возможно с: после
источник
:defer
если вы уже используете:mode
. github.com/jwiegley/use-package#notes-about-lazy-loading