Boşluklardaki mermi dosyasının önbelleği nasıl temizlenir?


33

Ben kullanıyorum spacemacsve sık kullandığınız SPC p fbir dosya bulmak için bağlayıcı anahtarı projectileprojesi. Fakat bir dosyayı git sayfasından çıkardıktan sonra bile SPC p f, silinen dosyayı gösterecek.

SPC p IÖnbelleği geçersiz kılmak için kullanmayı denedim , ancak bu işe yaramadı.

Sorun nasıl çözülür?


4
Ciltlemelerin doğru yapıldığını doğrulayabilir misiniz? Ne zaman alırsın C-h k SPC p l? Buna bağlı olmalı projectile-invalidate-cache. Ayrıca çalışıp M-x projectile-invalidate-cacheçalışmadığını kontrol edin .
Kaushal Modi

Boşluk boşluklarını kullanıyorum, bazı anahtar haritalarını yeniden tanımladım.
Daniel Wu,

2
Anahtar haritalamayı değiştirmek sorun değil. Anahtarların bağlı olması gerektiğini düşündüğünüz komuta bağlı olup olmadığını onaylamanızı rica ediyorum. Yine de, Mx yaklaşımını kullanmak işe yaradı mı?
Kaushal Modi

1
Spacemacs'in recentfproje dosyalarını sıralamak için kullanmasından kaynaklanıyordu . Eski Projectile sürümünde, dosyaları sildikten sonra bile, Projectile eski olan dosya listesini yine de yeniden kullandı recentf. Daha sonra Projectile sürümünde, Projectile önbelleğini temizlemek de recentfdosya listesini temizler ve silinen dosyaları siler. En son Projectile'ye güncelleme yapmalı ve tekrar deneymelisiniz.
Tu Do

Yanıtlar:


30

Yazın M-x projectile-invalidate-cacheve yanındaki listelenen bağlamaları ile komutu göreceksiniz. Benim için, ciltlerin M-m p Ihangisinin doğru olduğunu ve kutsal moddan ( spc p Ikötülük modu için) şüphelendiğim varsayılan olması gerektiğini söyledi .


Bunu otomatik olarak yapmanın bir yolu olmasını diliyorum.
Lorem Ipsum Dolor

1
@LiXinyang, konfigürasyonunuza koyabileceğiniz ve proje dosyalarını asla önbelleğe almayacağınız bir ayar var. Ancak, proje işlemlerinin çok sayıda dosya içeren herhangi bir projede yavaşlamasına neden olur. '(projectile-enable-caching nil)
Jimmy Hoffa

0

Önbellek geçersiz kılma işlemini otomatikleştirme konusundaki @Xinyang Li sorusundan esinlenerek, projeler arasında geçiş yaptıktan ve emacs başlatıldıktan sonra tüm projelerin önbelleğini temizledikten sonra mevcut proje için mermi önbelleğini temizlemek için aşağıdaki parçacıkları kullanmaya başladım.

(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)))
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.