Làm thế nào để xóa bộ nhớ cache của tập tin phóng trong spacemacs?


33

Tôi đang sử dụng spacemacsvà thường sử dụng SPC p fràng buộc chính để tìm tệp trong một projectiledự án. Nhưng ngay cả sau khi xóa tệp khỏi git, SPC p fsẽ hiển thị cho tôi tệp đã bị xóa.

Tôi đã thử sử dụng SPC p Iđể vô hiệu hóa bộ đệm, nhưng không được.

Làm thế nào để giải quyết vấn đề?


4
Bạn có thể xác minh rằng các ràng buộc được thực hiện chính xác? Bạn nhận được gì khi bạn làm gì C-h k SPC p l? Nó nên được ràng buộc với projectile-invalidate-cache. Ngoài ra kiểm tra nếu M-x projectile-invalidate-cachehoạt động.
Kaushal Modi

Tôi đang sử dụng spacemacs, nó định nghĩa lại một số ánh xạ chính.
Daniel Wu

2
Thay đổi ánh xạ khóa là ổn. Tôi đang yêu cầu bạn xác nhận xem các khóa có bị ràng buộc với lệnh mà bạn nghĩ nên bị ràng buộc không. Tuy nhiên, sử dụng phương pháp Mx có hoạt động không?
Kaushal Modi

1
Đó là bởi vì Spacemacs sử dụng recentfđể sắp xếp các tệp dự án. Trong phiên bản Projectile cũ hơn, ngay cả sau khi bạn xóa các tệp, Projectile vẫn sử dụng lại danh sách tệp đã lỗi thời từ đó recentf. Trong phiên bản Projectile sau này, xóa bộ đệm Projectile cũng xóa sạch recentfdanh sách tệp và xóa các tệp đã xóa. Bạn nên cập nhật lên Projectile mới nhất và thử lại.
Từ Đô

Câu trả lời:


30

Nhập M-x projectile-invalidate-cachevà bạn sẽ thấy lệnh với các ràng buộc được liệt kê bên cạnh nó. Đối với tôi, các ràng buộc đã nói M-m p Ilà đúng và nên là mặc định tôi nghi ngờ cho chế độ thánh ( spc p Iđối với chế độ tà ác).


Tôi ước có một cách để tự động làm điều này.
Lorem Ipsum Dolor

1
@LiXinyang có một cài đặt bạn có thể đặt trong cấu hình của mình để nói rằng không bao giờ lưu trữ các tệp dự án. Tuy nhiên, nó làm cho các hoạt động của dự án bị chậm lại trên bất kỳ dự án nào có nhiều tệp. '(projectile-enable-caching nil)
Jimmy Hoffa

0

Lấy cảm hứng từ câu hỏi @Xinyang Li về tự động hóa quá trình vô hiệu hóa bộ đệm, tôi bắt đầu sử dụng các đoạn bên dưới để xóa bộ đệm dự án cho dự án hiện tại sau khi tôi chuyển đổi giữa các dự án và xóa bộ nhớ cache của tất cả các dự án sau khi khởi tạo emacs.

(add-hook 'projectile-after-switch-project-hook (lambda ()
      (projectile-invalidate-cache nil)))


(add-hook 'after-init-hook (lambda ()
    (mapc (lambda (project-root)
        (remhash project-root projectile-project-type-cache)
        (remhash project-root projectile-projects-cache)
        (remhash project-root projectile-projects-cache-time)
        (when projectile-verbose
            (message "Invalidated Projectile cache for %s."
                (propertize project-root 'face 'font-lock-keyword-face)))
        (when (fboundp 'recentf-cleanup)
            (recentf-cleanup)))
        (projectile-hash-keys projectile-projects-cache))
    (projectile-serialize-cache)))
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.