हेल्म: बफर सुविधा के भीतर खोज?


11

एक बहुत ही बुनियादी हेल्म सवाल। हेल्म विंडो / कमांड / फीचर क्या है जो हमें regexpकिसी भी प्रकार के बफर के भीतर पाठ (अधिमानतः उपयोग करते हुए ) की खोज करने देता है (जैसे, केवल पढ़ने के लिए जैसे कि w3m)?

दूसरे शब्दों में, मैं हेल्म के Emacs के मूल कमांड के लिए isearch-forward( C-s) / isearch-backward( C-r) के लिए देख रहा हूँ ।

वर्णन करने के लिए: मूल isearchकमांड ( C-sया C-r) में से किसी एक को शामिल करने के बाद , हम दो तरीकों में से एक में खोज मोड से बाहर निकल सकते हैं:

  1. हम बाहर निकल सकते हैं और मूल बिंदु (माध्यम से C-g), या पर लौट सकते हैं

  2. वर्तमान में मिलान किए गए पाठ ( RETअन्य के माध्यम से ) से हम वर्तमान बिंदु से ब्राउज़िंग बफर जारी रख सकते हैं और जारी रख सकते हैं ।

मैं इन दो विकल्पों में से दूसरे की तलाश कर रहा हूं।


यहाँ मैंने जो अब तक कोशिश की है:

  • helm-regexp: इस के लिए मैं क्या देख रहा हूँ के निकटतम बात है लेकिन यह केवल के बराबर करता है C-s/ C-r+ C-g(यानी, यह हमें वापस मूल बात करने के लिए लेता है; खोज समाप्त और से वर्तमान में मिलान किया बफर ब्राउज़ करने के लिए जारी रखने के लिए कोई विकल्प नहीं बिंदु)।

  • helm-do-grep: ऐसा लगता है कि यह केवल फ़ाइलों के भीतर पाठ की खोज के लिए है (यानी, w3m पर काम नहीं करता है)

  • helm-buffer-run-grep/ -zgrep: इस कमांड / फ़ंक्शन को मिनी बफ़र में एक त्रुटि संदेश चलाने पर:Running helm command outside of context

  • जब helm-modeसक्षम किया जाता है, तो इनकैम की मूल विशेषता को लागू करना C-sया C-rलाना isearch(यह हेलम के इंटरफ़ेस द्वारा प्रतिस्थापित नहीं किया जाता है)। (हो सकता है कि ऐसी कोई सेटिंग है जिसे हम बदल सकते हैं इसलिए हेलम इस कमांड को ले सकती है? यानी, हेल्म कैसे देशी कमांड को write-file( C-x C-w) के लिए लेती है ( जिसका उपयोग किसी फाइल को खुले बफर में बदलने के लिए किया जा सकता है। सिर्फ दिमाग लगाना।)


1
आप सक्षम के helm-occurसाथ चाहते हैं follow-mode
nispio

जवाबों:


16

आप हेल्म-होने का उपयोग एक उपकरण के रूप में कर सकते हैं जो इसके लिए मूल हेल्म मॉड्यूल के साथ आता है। लेकिन मेरे लिए, बफर खोज के लिए सर्वश्रेष्ठ हेल्म आधारित उपकरणों में से एक शिंगो फुकुयामा का हेल्म-स्वूप है । आप इसे गीथूब से और एमईएलपीए के माध्यम से प्राप्त कर सकते हैं। यह मैच की स्थिति में अपनी बात छोड़ने में सक्षम होने की आपकी आवश्यक कार्यक्षमता है (जो एक regexp हो सकती है)। लेकिन आप कर्सर को वापस वहीं ले जा सकते हैं जहां आपने शुरुआत की थी।

Helm-swoop github पृष्ठ पर आपको अन्य उपयोगी कार्यों का एक पूरा गुच्छा मिलेगा, जो इस पैकेज की पेशकश करता है (जिसमें helm-multi-swoop द्वारा बहु-बफर खोज और परिणामों की पंक्तियों को संपादित करने की क्षमता शामिल है, ताकि परिवर्तन हो अंतर्निहित बफर पर लागू होता है)।


मैं सहमत हूँ। helm-swoopवास्तव में एक बेहतर संस्करण है helm-occur
तु डू

इसलिए, मैं इस मोर्चे पर थोड़ा देर से आ रहा हूं। मैंने कोशिश की helm-swoop... और मैं कभी वापस नहीं जा रहा हूँ! धन्यवाद
आइकमन

अच्छा स्वामी, पतवार-झपट्टा कुछ इस दुनिया से नहीं है।
सिंह उफिम्त्सेव

5

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

helm-follow-modeजब मैं उपयोग करता हूं helm-occurतो मुझे सक्षम करना पसंद है ताकि स्रोत विंडो हमेशा वर्तमान में चयनित मैच का संदर्भ दिखा सके। आप निम्नानुसार स्वचालित रूप से फॉलो-मोड को सक्षम कर सकते हैं:

(require 'helm-config)

(defvar my-helm-follow-sources ()
  "List of sources for which helm-follow-mode should be enabled")

;; Use helm-follow-mode for the following sources:
(add-to-list 'my-helm-follow-sources 'helm-source-occur)

(defun my-helm-set-follow ()
  "Enable helm-follow-mode for the sources specified in the list
variable `my-helm-follow-sources'. This function is meant to
be run during `helm-initialize' and should be added to the hook
`helm-before-initialize-hook'."
  (mapc (lambda (source)
          (when (memq source my-helm-follow-sources)
            (helm-attrset 'follow 1 (symbol-value source))))
        helm-sources))

;; Add hook to enable helm-follow mode for specified helm 
(add-hook 'helm-before-initialize-hook 'my-helm-set-follow)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.