İle yeni nesil paket yönetimi straight.el
package.elPaketlerimi yönetmek için + Quelpa'yı kullanmak için uzun ve sinir bozucu bir mücadeleden sonra mermiyi ısırdım ve kendi paket yöneticimi yazdım . Neredeyse her açıdan package.elüstün bir paket yönetim deneyimi sağlayarak tamamen yerini alması amaçlanmıştır .
Tüm özellikleri hakkında bilgi edinmek için çok kapsamlı belgeleri okuyabilirsiniz , ancak bu soru ile en alakalı olanı mükemmel tekrarlanabilirliğestraight.el odaklanmasıdır . Bu, Emacs'ı normal olarak başlatmanızın veya yeni bir makinede başlatmanızın önemli olmaması ve yerel değişikliklerin sürüm kontrollü olması ve standart bir duruma döndürülebilmesi anlamına gelmez. Pratik olarak, bunu (1) Git depoları olarak paketleri klonlamak ve durumlarını yönetmek için otomatik araçlar sağlamak; (2) init dosyasını başka bir yerde depolanabilir hiçbir veri olmadan paket yönetimi durumu için tek gerçek kaynak olarak kullanmak ; ve (3) her paketin kesin Git revizyonlarını, ayrıca tüm reçete depolarını vestraight.el kendisi.
Başlamak için , yüklenecek ve etkinleştirilecek önyükleme snippet'ini takın straight.el. Ardından, bir paketin kurulu olduğundan emin olmak straight-use-packageiçin init dosyanıza bir çağrı yapmanız yeterlidir :
(straight-use-package 'projectile)
Evet, bu kadar basit. package-refresh-contentsO çöple uğraşmak yok . Bu formu init dosyanızdan kaldırır ve Emacs'ı yeniden başlatırsanız, Projectile artık yüklenmez (aksine package.el). Bu, yanlışlıkla bir şekilde bildirilmeyen paketlere bağımlı olduğunuz için yapılandırmanızın bir şekilde yeni bir makinede çalışmadığı konusunda endişelenmenize gerek olmadığı anlamına gelir.
İnit dosyanız boyunca paketleri istediğiniz zaman ve istediğiniz zaman kurabilirsiniz (bunların listesini tek bir noktada bildirmenize gerek yoktur). Tabii ki sadece
(dolist (package '(ace-jump-mode ... zzz-to-char)) (straight-use-package package))
listeyi tercih ederseniz. Ancak use-packagepaket yapılandırmanızı yönetmek için kullanmanızı öneririz . İlk önce yüklemeniz gerekir:
(straight-use-package 'use-package)
Ardından, straight.elyerleşik entegrasyonundan bu yana , use-packageaşağıdaki "sadece çalışır":
(use-package projectile
:straight t
:init (projectile-mode 1))
İnit dosyanızı ihtiyaç duyduğunuz paketleri yüklemek için yazdıktan sonra, M-x straight-freeze-versionsbir sürüm kilit dosyasını kaydetmek için çalıştırın ~/.emacs.d/straight/versions/default.el. straight.elEmacs'ı yeni bir makinede ilk kez başlattığınızda, bu dosyayı sürüm kontrolünde tutmalısınız . (Manuel olarak kilit dosyasında belirtilen sürümlere geri dönebilirsiniz M-x straight-thaw-versions.)
Ben bahsedilen o makine yerel dotfiles fikrini desteklemek için benim diğer cevap , straight.elbir sunan profil sistemi . Hala nokta dosyalarınız için sembolik bağlantılar kullanmanızı öneririm (bu durumda, init.elvarsa yerel init dosyanız ve kullanmak istiyorsanız kilit dosyası).
straight.elDiğer paket yöneticileriyle nasıl karşılaştırıldığını merak ediyorsanız , kapsamlı karşılaştırmalar bölümüne göz atın . Ancak diğer her şey hakkında daha fazla dokümantasyon var .
init.elEtrafınızı hareket ettirebildiğiniz sürece (örneğin git kullanarak), bu yaklaşım da işe yarar (dayalıuse-package): lunaryorn.com/posts/…