Zaktualizowałem teraz wszystkie moje wywołania pakietu use, co :idle
nie jest już dobrym sposobem na odroczenie rzeczy. W tej chwili jednym z największych trafień w moim czasie ładowania jest elpy
ładowanie całej gamy dodatkowych modułów. W tej chwili moje wywołanie jest raczej podstawowe:
(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)))))
Jest to jednak raczej marnotrawstwo, jeśli nigdy nie edytuję żadnych modułów Pythona. Problem polega na tym, że elpy to zbiór trybów, więc nie mogę po prostu użyć formularza powiązania trybu, ponieważ elpy-enable
trzeba go wywołać . Więc jakiego podejścia powinienem użyć. Czy to tylko przypadek wyzwolenia zaczepu w trybie python?
use-package
elpy
stsquad
źródło
źródło
:idle
można zastąpić czymś takim, jak:defer 30
gdzie liczba to opóźnienie w sekundach, po którym paczka powinna zostać załadowana.Odpowiedzi:
Nie znam Elpy, więc nie jestem pewien, czy dobrze rozumiem twój problem. Wiem
use-package
jednak, a ostatnio cierpiał na ten sam problem, a mianowicie usunięcie:idle
.Zasadniczo istnieją dwa wyjścia, w zależności od tego, jak musisz korzystać z Elpy. Można użyć biedaka
:idle
, zrun-with-idle-timer
, na przykładAlternatywnie możesz polegać na starym dobrym
with-eval-after-load
lub używaćpython-mode-hook
i opóźniać Elpy do momentu, gdy Tryb Python zostanie załadowany lub włączony odpowiednio:źródło
:commands elpy-enable
aby to działało.:init (with-eval-after-load 'python (elpy-enable)) :commands elpy-enable
Autor elpy sugeruje zrobienie tego za pomocą porady, ponieważ
elpy-enable
modyfikujepython-mode-hook
zmienną, więc wywołanie jej wewnątrz hook-mode jest za późno: https://github.com/jorgenschaefer/elpy/wiki/Configurationproste podejście:
za pomocą
use-package
:źródło
README.rst
, ale nie w pierwszym i najbardziej oczywistym miejscu: sekcja instalacji dokumentacji . Zgłosiłem to w numerze 1606 .Myślę, że jest to możliwe dzięki: po
źródło
:defer
jeśli już używasz:mode
. github.com/jwiegley/use-package#notes-about-lazy-loading