Jawaban:
Saya tidak yakin ini yang Anda inginkan (saya tidak tahu apa yang Anda maksud dengan “dalam kondisi tertentu”), tetapi di sini adalah fungsi yang saya gunakan untuk memutakhirkan semua paket tanpa menunjukkan *Packages*
buffer, yang menurut saya menjengkelkan ketika saya hanya ingin untuk meningkatkan paket.
(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"))))
Ini sudah dicoba dengan baik. Itu juga mencegah kompilasi buffer muncul.
(y-or-n-p (message ..))
bukan hanya (y-or-n-p ...)
?
message
, sepertinya itu bisa dilakukan dengan format
baik juga.
format
. Jelas Anda tidak dapat melakukannya tanpa interpolasi string apa pun.
Anda dapat menggunakan pembaruan paket otomatis .
Instal dengan M-x package-install auto-update-package
. Ini menyediakan fungsi yang disebut auto-package-update-now
. Anda dapat menulis if
kondisi sederhana dan menambahkannya ke .emacs
.
(if your-condition
(auto-package-update-now))
Paket ini sekarang disebut pembaruan paket otomatis. (Reputasi terlalu rendah untuk menuliskannya sebagai komentar pada posting Chillar di atas).
(Disalin dari jabatannya dan bergabung dengan jawaban ini):
Instal dengan M-x package-install auto-package-update
. Ini menyediakan fungsi yang disebut auto-package-update-now
. Anda dapat menulis kondisi jika sederhana dan menambahkannya ke ~/.emacs
.
(if your-condition
(auto-package-update-now))
paradox
denganpackage
).