मैं कई खुले बफ़र्स में पाठ कैसे ढूँढ सकता हूँ?


36

आइए हम कहते हैं कि मेरे पास 10 बफ़र्स खुले हैं, और मैं blahसभी 10 बफ़र्स की सभी घटनाओं को खोजना चाहता हूं । यह मैं कैसे करूंगा?

जवाबों:


31

अंतर्निहित एमएसीएस कमांड्स से चिपके हुए, आप उपयोग ( multi-occurया ) कर सकते हैं । प्रत्येक बफर का उपयोग करने के लिए संकेत देकर आपको ठीक नियंत्रण देता है, लेकिन यह थकाऊ है। आपको फ़ाइल नामों से मिलान करने के लिए एक regexp दर्ज करने देता है (यह केवल उन बफ़र्स में खोज करता है जो फ़ाइलों का दौरा कर रहे हैं); एक फ़ाइल पर जा रहे सभी बफ़र्स में खोज करने के लिए फ़ाइल regexp के रूप में दर्ज करें।multi-occur-in-matching-buffersM-x multi-occur- TAB RETmulti-occurmulti-occur-in-matching-buffers.

बफ़र्स या फ़ाइलों की सूची में वृद्धिशील खोज के लिए भी फ़ंक्शंस हैं, लेकिन वे थकाऊ हैं जैसे multi-occurकि उन्हें बफ़र्स या फ़ाइलों को एक-एक करके सूचीबद्ध करने की आवश्यकता होती है।

किसी डायरेक्टरी की सभी फाइलों, या कुछ पैटर्न से मेल खाती फाइलों को खोजने के लिए, चाहे वे खुली हों या नहीं, आप उपयोग कर सकते हैं grep। वहाँ वेरिएंट rgrepऔर grep-findखोज करने के लिए subdirectories पुनरावर्ती हैं।


5
+1 उल्लेख करने के लिए कि .सभी फाइलों का मिलान करने के लिए नियमित अभिव्यक्ति है।
1526 पर user2699

12

दूसरों ने जो उल्लेख किया है, इसके अलावा - इसके लिए दो अन्य संसाधन हैं।

  1. M-x multi-isearch-buffersया M-x multi-isearch-buffers-regexp(वेनिला Emacs) - कई बफ़र्स में वृद्धिशील खोज।

  2. यदि आप Icicles का उपयोग करते हैं तो आप कई फ़ाइलों या बफ़र्स में खोज करने के लिए icicle-search(या icicle-occur, या किसी भी अन्य icicle-searchविशेषज्ञताओं की संख्या ) का उपयोग कर सकते हैं ।

(मनमाने ढंग से बफ़र्स में खोजने और बदलने के अलावा , ऐसे कोर्स कमांड होते हैं, जो कई फाइलों में होते हैं । दूसरों के पास grep, उदाहरण के लिए। और निश्चित रूप Aसे Dired में होते हैं। लेकिन आपने फ़ाइलों को खोजने के बारे में नहीं पूछा।)


10

यह कमांड के माध्यम से पतवार के साथ किया जा सकता है helm-multi-occur। आप melpa से helm को इनस्टॉल कर सकते हैं और फिर कमांड को इस प्रकार से कॉल कर सकते हैं:

M-x helm-multi-occur RET M-a RET

यह खुल जाएगा helm-multi-occurऔर फिर सभी बफ़र्स का चयन करें। M-aसभी बफ़र्स को चिह्नित करने के लिए उपयोग करने के बजाय , आप वैकल्पिक रूप से एक समय में ब्याज के बफ़र्स का चयन कर सकते हैं। ऊपर नेविगेट और साथ इस सूची में नीचे C-nऔर C-pऔर साथ निशान बफ़र्स C-SPC। एक बार सभी बफ़र्स चिह्नित होने के बाद, RETचिह्नित बफ़र्स को स्वीकार करने के लिए दबाएं और खोजना शुरू करें।

यदि आप अपनी init फ़ाइल में निम्न जोड़ते हैं:

(require 'helm-regexp)
(eval-after-load "helm-regexp"
  '(setq helm-source-moccur
    (helm-make-source "Moccur" 'helm-source-multi-occur :follow 1)))

;; (source: http://stackoverflow.com/q/14726601)
(defun my-helm-multi-occur-buffers ()
  "multi-occur in all buffers backed by files."
  (interactive)
  (helm-multi-occur
   (delq nil
     (mapcar (lambda (b)
           (when (buffer-file-name b) (buffer-name b)))
         (buffer-list)))))

फिर आप उन my-helm-multi-occur-buffersसभी बफ़र्स में मल्टी-होने के लिए कमांड बाँध सकते हैं जो फ़ाइलों द्वारा समर्थित हैं।


3
आप helm-swoopMELPA में पैकेज को देखना चाहते हैं । यह इस कार्यक्षमता को प्रदान करता है और साथ ही परिणामों के त्वरित संपादन की अनुमति देता है।
वम्सी


6

आप उन ibufferबफ़र्स को चिह्नित करने के लिए मोड का उपयोग कर सकते हैं जिन्हें आप खोजना चाहते हैं। पाठ की खोज के लिए कॉल करें ibuffer-do-isearch( M-s a C-sडिफ़ॉल्ट रूप से बाध्य ), या ibuffer-do-isearch-regexpयदि आपको एक नियमित अभिव्यक्ति के लिए खोज करने की आवश्यकता है।

यदि आप परिचित नहीं हैं ibuffer, तो इसे फायर करें और मार्क मेनू पर एक नज़र डालें, ताकि आप उन सभी तरीकों को देख सकें, जिन पर आप बफ़र सेट करना चुन सकते हैं।


1

यहाँ पतवार के साथ एक और तरीका है: M-x helm-mini M-a C-s blah। आह्वान करने के बाद helm-mini, M-aसभी खुलने वाले बफ़रों को चिह्नित करेंगे , फिर C-s blahचिह्नित बफ़र्स पर बहु ​​घटित करेंगे।


0

इसके अलावा, हेल्म-मोड का उपयोग करने वाला एक समाधान है helm-swoop

उपयोग

M-x helm-swoop RET

फिर, सभी खुले बफ़र्स में खोजने के लिए, टाइप करें

M-i

फिर, बस blahइसे सभी बफ़र्स में खोजने के लिए टाइप करें। एक अलग विंडो पर सभी घटनाओं को दिखाएगा।

वैकल्पिक रूप से, आप केवल टाइप कर सकते हैं

M-x helm-multi-swoop

फिर, उन सभी बफ़र्स को चिह्नित करें जिन्हें आप खोज करना चाहते हैं M-SPCया C-SPC, दबाएं RETऔर खोजें blah

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