Điều này tương tự với câu hỏi này nhưng câu trả lời dường như bị phản đối.
Giả sử tôi đang sử dụng một lớp và muốn hack mã của một gói cụ thể mà lớp đó đang sử dụng. Làm thế nào để tôi đi về nó?
Để minh họa rõ hơn những gì tôi muốn đạt được nói chung, tôi trình bày một ví dụ cụ thể.
Tôi cố gắng để spotifylớp hoạt động, nhưng masternhánh hiện tại trong helm-spotifygói sử dụng API web không dùng nữa. Có một yêu cầu kéo để sửa lỗi này và tôi muốn thử nó và có thể đóng góp một cái gì đó. Vấn đề của tôi là, tôi không thể helm-spotifytải bản sao cục bộ để tải.
Những gì tôi đã cố gắng là chuyển sang developchi nhánh của spacemacs:
git branch --track develop origin/develop
git checkout develop
Trong ~/.emacs.d/layers/spotify/packages.el
Tôi đã thay đổi từ
(setq spotify-packages '(spotify helm-spotify))
Đến
(setq spotify-packages
'(
spotify
(helm-spotify :location local)
))
Và kéo helm-spotifykho lưu trữ đến~/.emacs.d/layers/spotify/local/helm-spotify
Khi tôi khởi động lại spacemacs, tôi nhận được
File error: Cannot open load file, no such file or directory, multi
Trong khi tôi nhìn vào helm-spotify.elđó là:
(require 'multi)
Vì vậy, dự đoán của tôi là, khi cài đặt helm-spotifytừ melpaphụ thuộc vào multiđược giải quyết trước khi tải helm-spotifynhưng tất nhiên không còn nữa khi tôi sử dụng bản sao cục bộ helm-spotify.
Vì vậy, câu hỏi của tôi là :
- Làm thế nào để giải quyết các phụ thuộc khi sử dụng một gói địa phương?
- Hay tôi nên làm điều này hoàn toàn khác với những gì tôi mô tả?
Tôi cũng đã cố gắng, nhưng không thành công, để thêm multivào dotspacemacs-additional-packagesvà để spotify-packages:
(setq spotify-packages '(
multi ;; I added this
spotify
(helm-spotify :location local) ;; I modified here
))
;; I added this
(defun spotify/init-multi ()
(use-package multi))
;; the rest is as it was
(defun spotify/init-spotify ()
(use-package spotify
:config (spacemacs/set-leader-keys
"amsp" 'spotify-playpause
"amsn" 'spotify-next
"amsN" 'spotify-previous
"amsQ" 'spotify-quit)))
(when (configuration-layer/layer-usedp 'spacemacs-helm)
(defun spotify/init-helm-spotify ()
(use-package helm-spotify
:config (spacemacs/set-leader-keys
"amsg" 'helm-spotify))))
trong packages.el. Cũng đã thử mà không cần thêm multivào dotspacemacs-additional-packages.
recipethay vì local. ví dụ(helm-spotify :location (recipe <recipe specs>))
multivào dotspacemacs-additional-packagesmà không thành công. Lỗi là như nhau. Tôi đã cập nhật câu hỏi của mình để phản ánh việc packages.eltôi đang sử dụng. Cảm ơn nỗ lực của bạn!
recipethay vì local(nó sẽ quan tâm đến sự phụ thuộc đa dạng cho bạn), hoặc chuyển multicấu hình sang một lớp riêng và đảm bảo rằng lớp đó được liệt kê trước spotifytrong dotspacemacs-configuration-layers(danh sách lớp)
package.el(mô-đun Emacs tích hợp) không thực sự được xemlocal/helm-spotifylà một gói. Cách để giải quyết nó là thủ công và bạn đang đi đúng hướng. Bạn có thể thêm chi tiết cách bạn đã cố gắng để thêmmulti? Không rõ nếu bạn thêm nó vàoadditional-packagesvàspotify-packagescùng một lúc, hoặc thử riêng chúng. Cómultitrongspotify-packagesvà mộtspotify/init-multihàm trongpackages.el(không sử dụngadditional-packages) nên là đủ