प्रोजेक्टाइल से फ़ाइलों को बाहर कैसे करें?


39

मैं प्रस्तावना से हेल्म-प्रोजेक्टाइल सेटअप का उपयोग कर रहा हूं और यह मेरे वर्कफ़्लो में बहुत बड़ा सुधार है। केवल शेष समस्या ऑटो-जनरेट की गई फाइलें (जैसे सीएमके द्वारा उत्पन्न) हैं जो हेल्म-ग्रीप और इसी तरह के संचालन के दौरान दिखाई देती हैं।

प्रश्न : प्रोजेक्टाइल से प्रोजेक्ट फ़ोल्डर ट्री में फ़ाइलों को बाहर करने का एक तरीका है?

जवाबों:


33

प्रोजेक्टाइल को देखते हुए यह विश्व स्तर पर फ़ाइलों / निर्देशिकाओं को अनदेखा करने के लिए चार अनुकूलन प्रदान करता है। मैं उनमें से प्रत्येक को उनके प्रलेखन के साथ सूचीबद्ध कर रहा हूं

projectile-globally-ignored-files

प्रोजेक्टाइल द्वारा विश्व स्तर पर फ़ाइलों की एक सूची की अनदेखी की गई।

projectile-globally-ignored-directories

प्रोजेक्टाइल द्वारा विश्व स्तर पर निर्देशिकाओं की एक सूची को अनदेखा किया गया।

projectile-globally-ignored-file-suffixes

प्रोजेक्टाइल द्वारा विश्व स्तर पर फ़ाइल प्रत्यय की सूची की अनदेखी की गई।

projectile-globally-ignored-modes

प्रक्षेप्य द्वारा नजरअंदाज किए गए प्रमुख तरीकों के लिए नियमित अभिव्यक्तियों की एक सूची।

यदि बफ़र किसी दिए गए प्रमुख मोड का उपयोग कर रहा है, तो प्रोजेक्टाइल बफ़र्स के साथ काम करने वाले कार्यों के लिए इसे अनदेखा कर देगा।

कृपया ध्यान दें कि ये वैश्विक विकल्प हैं इसलिए उदाहरण के लिए एक निर्देशिका projectile-globally-ignored-directoriesको उस परियोजना की परवाह किए बिना अनदेखा किया जाएगा, जिसके साथ आप काम कर रहे हैं। किसी विशेष परियोजना के लिए एक फ़ाइल / निर्देशिका को अनदेखा करने के लिए आप .projectileपरियोजना की जड़ में एक फ़ाइल जोड़ सकते हैं और -इसके साथ उपसर्ग को अनदेखा करने के लिए पथ जोड़ सकते हैं जैसे कि निम्नलिखित

-/CMake

अधिक जानकारी के लिए projectile-parse-dirconfig-file(या प्रोजेक्टाइल के डॉक्स ) का प्रलेखन देखें

पार्स परियोजना की अनदेखी और रखने के लिए फ़ाइल और वापसी निर्देशिकाओं को अनदेखा करें।

वापसी मूल्य एक कॉन होगा, कार को रखने के लिए निर्देशिकाओं की सूची होगी, और सीडीआर को अनदेखा करने के लिए फ़ाइलों या निर्देशिकाओं की सूची होगी।

+ के साथ शुरू होने वाली स्ट्रिंग्स को रखने के लिए निर्देशिकाओं की सूची में जोड़ा जाएगा , और साथ शुरू होने वाले तारों - को अनदेखा करने के लिए निर्देशिकाओं की सूची में जोड़ा जाएगा । पिछड़ी अनुकूलता के लिए, उपसर्ग के बिना स्ट्रिंग को एक अनदेखा स्ट्रिंग माना जाएगा


2
मैं projectile-globally-ignored-file-suffixesकाम करने में असमर्थ हूं (मुझे लगता है) इसका इरादा है। क्या इसमें बस प्रत्यय (यानी "ओ" ऑब्जेक्ट फ़ाइलों के लिए), एक फ़ाइल ग्लोब (यानी "* .o") या कुछ और होना चाहिए? सच कहूँ तो मैंने हर कॉम्बो की कोशिश की है जिसके बारे में मैं सोच सकता हूँ और यह काम नहीं किया है।
Bklyn

मैं स्कैला का उपयोग एन्सेम के साथ कर रहा हूं, और प्रोजेक्टाइल पहले से ही .ensime_cache को विश्व स्तर पर नजरअंदाज करता है। हालाँकि Cc ph हेल-प्रोजेक्टाइल को लाता है और सभी .ensime_cache फ़ाइलों को दिखाता है। कोई विचार?
अर्ने

23

हां, आपकी .projectileफ़ाइल में, प्रत्येक पंक्ति पर समान निर्दिष्ट करें: प्रत्येक पंक्ति इस तरह दिखाई देती है:

- /path/to/somefile

प्रत्येक पंक्ति में एक फ़ाइल पथ होता है।

फाइलों को अनदेखा करने पर आधिकारिक दस्तावेज देखें


7

एक अन्य समाधान परियोजना फ़ाइलों को बनाने के लिए ag( the_silver_searcher ) या rg( ripgrep ) का उपयोग करना होगा । यहां बताया गया है कि आप इसे कैसे कर सकते हैं rg:

(setq projectile-enable-caching t)

;;; Default rg arguments
  ;; https://github.com/BurntSushi/ripgrep
  (when (executable-find "rg")
    (progn
      (defconst modi/rg-arguments
        `("--line-number"                     ; line numbers
          "--smart-case"
          "--follow"                          ; follow symlinks
          "--mmap")                           ; apply memory map optimization when possible
        "Default rg arguments used in the functions in `projectile' package.")

      (defun modi/advice-projectile-use-rg ()
        "Always use `rg' for getting a list of all files in the project."
        (mapconcat 'identity
                   (append '("\\rg") ; used unaliased version of `rg': \rg
                           modi/rg-arguments
                           '("--null" ; output null separated results,
                             "--files")) ; get file names matching the regex '' (all files)
                   " "))

      (advice-add 'projectile-get-ext-command :override #'modi/advice-projectile-use-rg)))

अपनी परियोजना निर्देशिका में, उन फ़ाइलों को निर्दिष्ट करें जिन्हें आप अनदेखा करना चाहते हैं .gitignoreऔर आप जाना अच्छा मानते हैं :)

कोड कौशलमोडी के एमएसीएस विन्यास से है।


2

खोज जो सम्मानित dirs / फ़ाइलों को:

  1. स्थापित करें ack(grep का एक विकल्प। मैं homebrew के माध्यम से स्थापित करता हूं।)

  2. डाल --ignore-caseअपने में ~.ackrcफ़ाइल (यह मानते हुए आप मामले को अनदेखा करना चाहते हैं)

  3. helm-projectile-ackएक कुंजी से बांधें । मैं अपने एमएसीएस इनिट के माध्यम से ऐसा करता हूं:

(use-package helm
  ...
  :bind (...
         ("C-c p s a" . helm-projectile-ack)
        )
  ...
)
  1. एक .projectileफ़ाइल बनाएँ । उदाहरण के लिए,
-.dot
-.jcs
-.svg
-.txt

उपयोग

C-c p s a     ;; search that respects .projectile ignore

या

C-c s p g     ;; search everything
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.