@xuchunyang Ah. Widzę, że to nie wygląda źle. Jeśli udzielisz tej odpowiedzi, zaakceptowałbym ją.
PythonNut
Odpowiedzi:
9
Nie jestem pewien, czy tego właśnie chcesz (nie wiem, co rozumiesz przez „pod pewnymi warunkami”), ale tutaj jest funkcja, której używam do aktualizacji wszystkich pakietów bez pokazywania *Packages*bufora, co wydaje mi się irytujące, kiedy chcę do aktualizacji pakietów.
(defun package-upgrade-all ()"Upgrade all packages automatically without showing *Packages* buffer."(interactive)(package-refresh-contents)(let(upgrades)(cl-flet ((get-version (name where)(let((pkg (cadr(assq name where))))(when pkg
(package-desc-version pkg)))))(dolist (package (mapcar #'car package-alist))(let((in-archive (get-version package package-archive-contents)))(when (and in-archive
(version-list-<(get-version package package-alist)
in-archive))(push (cadr(assq package package-archive-contents))
upgrades)))))(if upgrades
(when (yes-or-no-p
(message "Upgrade %d package%s (%s)? "(length upgrades)(if(=(length upgrades)1)"""s")(mapconcat #'package-desc-full-name upgrades ", ")))(save-window-excursion
(dolist (package-desc upgrades)(let((old-package (cadr(assq (package-desc-name package-desc)
package-alist))))(package-install package-desc)(package-delete old-package)))))(message "All packages are up to date"))))
To jest wypróbowane. Zapobiega również wyskakiwaniu buforów kompilacji.
Zainstaluj przez M-x package-install auto-update-package. Zapewnia funkcję o nazwie auto-package-update-now. Możesz napisać prosty ifwarunek i dodać go do swojego .emacs.
Hm ... Będę o tym pamiętać, ale chodzi o to, aby spróbować automatycznie naprawić pakiet, jeśli są zepsute. W zależności od pakietu jest to trochę nonsensowne. :-)
PythonNut
1
Pakiet nazywa się teraz automatyczną aktualizacją pakietu. (Zbyt niska reputacja, aby napisać to jako komentarz do powyższego postu w Chillar).
(Skopiowano z jego postu i scalono z tą odpowiedzią):
Zainstaluj przez M-x package-install auto-package-update. Zapewnia funkcję o nazwie auto-package-update-now. Możesz napisać prosty warunek if i dodać go do swojego ~/.emacs.
paradox
zpackage
).Odpowiedzi:
Nie jestem pewien, czy tego właśnie chcesz (nie wiem, co rozumiesz przez „pod pewnymi warunkami”), ale tutaj jest funkcja, której używam do aktualizacji wszystkich pakietów bez pokazywania
*Packages*
bufora, co wydaje mi się irytujące, kiedy chcę do aktualizacji pakietów.To jest wypróbowane. Zapobiega również wyskakiwaniu buforów kompilacji.
źródło
(y-or-n-p (message ..))
zamiast po prostu(y-or-n-p ...)
?message
, wygląda na to, że można to zrobićformat
równie dobrze.format
. Oczywiście nie można tego zrobić bez interpolacji ciągów.Możesz użyć automatycznej aktualizacji pakietu .
Zainstaluj przez
M-x package-install auto-update-package
. Zapewnia funkcję o nazwieauto-package-update-now
. Możesz napisać prostyif
warunek i dodać go do swojego.emacs
.źródło
Pakiet nazywa się teraz automatyczną aktualizacją pakietu. (Zbyt niska reputacja, aby napisać to jako komentarz do powyższego postu w Chillar).
(Skopiowano z jego postu i scalono z tą odpowiedzią):
Zainstaluj przez
M-x package-install auto-package-update
. Zapewnia funkcję o nazwieauto-package-update-now
. Możesz napisać prosty warunek if i dodać go do swojego~/.emacs
.źródło