स्पेसमैक्स में प्रोजेक्टाइल फाइल का कैशे कैसे क्लियर करें?


33

मैं एक परियोजना में फ़ाइलों को खोजने के spacemacsलिए SPC p fकुंजी बंधन का उपयोग कर रहा हूं और अक्सर उपयोग करता हूं projectile। लेकिन एक फ़ाइल को गिट से हटाने के बाद भी, SPC p fमुझे वह हटाई गई फ़ाइल दिखाएगा।

मैंने SPC p Iकैश को अमान्य करने की कोशिश की , लेकिन यह काम नहीं किया।

समस्या को कैसे हल करें?


4
क्या आप यह सत्यापित कर सकते हैं कि बाइंडिंग सही तरीके से बनाई गई है? जब आप करते हैं तो आपको क्या मिलता है C-h k SPC p l? इसके लिए बाध्य होना चाहिए projectile-invalidate-cache। यह भी देखें कि क्या M-x projectile-invalidate-cacheकाम करता है।
कौशल मोदी

मैं स्पेसमैक्स का उपयोग कर रहा हूं, इसने कुछ प्रमुख मैपिंग को फिर से परिभाषित किया है।
डैनियल वू

2
मुख्य मानचित्रण को बदलना ठीक है। मैं आपसे यह पुष्टि करने के लिए कह रहा हूं कि क्या आपके द्वारा लिखी जाने वाली कमांड के लिए कुंजियाँ बाध्य हैं। फिर भी, क्या Mx दृष्टिकोण काम का उपयोग कर रहा था?
कौशल मोदी

1
ऐसा इसलिए था क्योंकि Spacemacs recentfप्रोजेक्ट फ़ाइलों को सॉर्ट करने के लिए उपयोग करता है । पुराने प्रोजेक्टाइल संस्करण में, फ़ाइलों को हटाने के बाद भी, प्रोजेक्टाइल ने अभी भी पुरानी फ़ाइल सूची का पुन: उपयोग किया है recentf। बाद के प्रोजेक्टाइल संस्करण में, प्रोजेक्टाइल कैश को साफ़ करने से recentfफ़ाइल सूची भी साफ हो जाती है और हटाए गए फ़ाइलों को हटा दिया जाता है। आपको नवीनतम प्रोजेक्टाइल पर अद्यतन करना चाहिए और फिर से प्रयास करना चाहिए।
Tu Do

जवाबों:


30

टाइप करें M-x projectile-invalidate-cacheऔर आप कमांड को उसके आगे सूचीबद्ध बाइंडिंग के साथ देखेंगे। मेरे लिए बाइंडिंग ने कहा कि M-m p Iजो सही था, और मुझे डिफ़ॉल्ट रूप से पवित्र मोड ( spc p Iबुराई मोड के लिए) पर संदेह होना चाहिए ।


काश स्वचालित रूप से ऐसा करने का एक तरीका है।
लोरम इप्सम डोलर

1
@LiXinyang एक सेटिंग है जिसे आप अपने कॉन्फ़िगरेशन में रख सकते हैं जो कहता है कि कभी प्रोजेक्ट फ़ाइलों को कैश न करें। हालाँकि यह बहुत सारे फ़ाइलों के साथ किसी भी प्रोजेक्ट को धीमा करने के लिए प्रोजेक्ट ऑपरेशन का कारण बनता है। '(projectile-enable-caching nil)
जिमी हॉफ डे

0

कैश अमान्य करने की प्रक्रिया को स्वचालित करने पर @Xinyang Li प्रश्न से प्रेरित होकर, मैंने एमएसीएस के प्रारंभ के बाद परियोजनाओं के बीच स्विच करने और सभी परियोजनाओं के स्पष्ट कैश के बाद वर्तमान परियोजना के लिए स्पष्ट प्रक्षेप्य कैश के लिए नीचे स्निपेट का उपयोग करना शुरू कर दिया।

(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)))
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.