@xuchunyang Ah. Saya melihat itu tidak terlihat terlalu buruk. Jika Anda menjawabnya, saya akan menerimanya.
PythonNut
Jawaban:
9
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.
Bagus. Saya akan menggunakan ini dengan sedikit variasi yang tidak meminta sebelum meningkatkan paket.
PythonNut
Apakah ada alasan khusus mengapa Anda melakukannya, (y-or-n-p (message ..))bukan hanya (y-or-n-p ...)?
PythonNut
@ PhythonNut, Yah saya perlu membangun pesan cepat, saya tidak ingat sekarang mengapa saya menggunakan message, sepertinya itu bisa dilakukan dengan formatbaik juga.
Mark Karpov
Ah iya. Maksud saya menggunakan format. Jelas Anda tidak dapat melakukannya tanpa interpolasi string apa pun.
Instal dengan M-x package-install auto-update-package. Ini menyediakan fungsi yang disebut auto-package-update-now. Anda dapat menulis ifkondisi sederhana dan menambahkannya ke .emacs.
Hm ... Saya akan mengingat hal ini, tetapi idenya adalah mencoba memperbaiki secara otomatis paket jika mereka rusak. Tergantung pada paket untuk melakukannya agak tidak masuk akal. :-)
PythonNut
1
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.
paradox
denganpackage
).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.Ini sudah dicoba dengan baik. Itu juga mencegah kompilasi buffer muncul.
sumber
(y-or-n-p (message ..))
bukan hanya(y-or-n-p ...)
?message
, sepertinya itu bisa dilakukan denganformat
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 disebutauto-package-update-now
. Anda dapat menulisif
kondisi sederhana dan menambahkannya ke.emacs
.sumber
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 disebutauto-package-update-now
. Anda dapat menulis kondisi jika sederhana dan menambahkannya ke~/.emacs
.sumber