Setelah baru-baru ini belajar tentang use-package
saya memutuskan untuk port konfigurasi saya untuk itu tetapi menemukan diri saya enggan untuk memberikan kemudahan menggunakan package.el
menginstal paket dan tetap memperbaruinya. Saya merasa agak sulit untuk menggabungkan use-package
dan package.el
.
Saya umumnya tertarik mempelajari bagaimana orang-orang bergabung use-package
dengan package.el
sistem, tetapi untuk pertanyaan yang lebih spesifik, teruslah membaca.
Inilah yang saya inginkan:
- Untuk memiliki paket yang diinstal oleh manajer paket sehingga saya dapat dengan mudah menelusuri paket dan terus memperbaruinya
list-packages
. - Untuk mengkonfigurasi dan memuat paket secara eksklusif
use-package
, jadi saya dapat dengan mudah melihat di file init saya persis apa yang saya muat dan bagaimana hal itu dikonfigurasi. - Opsional, saya ingin juga dapat menginstal paket melalui
use-package
's:ensure
kata kunci.
Jika saya mengerti dengan benar saya ingin sedikit dari apa yang package-initialize
dilakukan, pada dasarnya hanya cara mengatur load-path
. Saat ini saya memiliki ini dalam konfigurasi saya:
;(package-initialize)
(setq package-enable-at-startup nil)
(let ((default-directory "~/.emacs.d/elpa"))
(normal-top-level-add-subdirs-to-load-path))
(require 'use-package)
Baris pertama, yang dikomentari, adalah agar Emacs 25 tidak membantu menambahkan (package-initialize)
file init saya. Bit with normal-top-level-add-subdirs-to-load-path
adalah aproksimasi terhadap apa yang package-initialize
akan membuat load-path
, aproksimasi yang tampaknya cukup baik.
Ini tampaknya mencapai keinginan saya 1 dan 2, tetapi tidak 3. Jika saya mencoba menggunakan :ensure
, saya mendapatkan pesan kesalahan yang mengatakan bahwa package.el
itu tidak diinisialisasi. Memanggil package-initialize
akan memperbaikinya, tetapi saya ingin menghindari itu karena a) Saya tidak ingin semua autoload yang sangat banyak dimuat (saya lebih suka menggunakan use-package
untuk membuat secara tepat autoload yang saya butuhkan), dan b) Saya ingin dapat dengan mudah hindari memuat paket yang diinstal tertentu kapan pun saya mau (yang mudah dilakukan use-package
).
Adakah yang punya rekomendasi untuk bagaimana melakukan ini?
package-initialize
yang membuat pertanyaan saya diperdebatkan.