@xuchunyang Ах. Я вижу, это выглядит не так уж плохо. Если вы сделаете это ответ, я бы принял это.
PythonNut
Ответы:
9
Я не уверен, что это то, что вы хотите (я не знаю, что вы подразумеваете под «при определенных условиях»), но вот функция, которую я использую для обновления всех пакетов без отображения *Packages*буфера, что я нахожу раздражающим, когда просто хочу обновить пакеты.
(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"))))
Это хорошо проверено. Это также предотвращает появление буферов компиляции.
Установите это M-x package-install auto-update-package. Он предоставляет функцию под названием auto-package-update-now. Вы можете написать простое ifусловие и добавить его к своему .emacs.
Хм ... я учту это, но идея состоит в том, чтобы попытаться автоматически исправить упакованные пакеты, если они сломаны. В зависимости от пакета сделать это немного бессмысленно. :-)
PythonNut
1
Пакет теперь называется автоматическим обновлением пакета. (Слишком низкая репутация, чтобы написать это как комментарий к посту Chillar выше).
(Скопировано из его поста и объединено с этим ответом):
Установите это M-x package-install auto-package-update. Он предоставляет функцию под названием auto-package-update-now. Вы можете написать простое условие if и добавить его к своему ~/.emacs.
paradox
наpackage
).Ответы:
Я не уверен, что это то, что вы хотите (я не знаю, что вы подразумеваете под «при определенных условиях»), но вот функция, которую я использую для обновления всех пакетов без отображения
*Packages*
буфера, что я нахожу раздражающим, когда просто хочу обновить пакеты.Это хорошо проверено. Это также предотвращает появление буферов компиляции.
источник
(y-or-n-p (message ..))
а не просто(y-or-n-p ...)
?message
, кажется, что это можно сделатьformat
также.format
. Очевидно, что вы не можете сделать это без какой-либо интерполяции строк.Вы можете использовать автоматическое обновление пакета .
Установите это
M-x package-install auto-update-package
. Он предоставляет функцию под названиемauto-package-update-now
. Вы можете написать простоеif
условие и добавить его к своему.emacs
.источник
Пакет теперь называется автоматическим обновлением пакета. (Слишком низкая репутация, чтобы написать это как комментарий к посту Chillar выше).
(Скопировано из его поста и объединено с этим ответом):
Установите это
M-x package-install auto-package-update
. Он предоставляет функцию под названиемauto-package-update-now
. Вы можете написать простое условие if и добавить его к своему~/.emacs
.источник