नोटपैड ++ के लिए ग्रीप जैसी कार्यक्षमता?


52

मैं नोटपैड ++ में कुछ grep जैसी कार्यक्षमता रखना चाहूंगा।

इसके सबसे सरल संस्करण में, मैं वर्तमान बफर से सभी लाइनों को कॉपी करने में सक्षम होना चाहूंगा जिनमें शब्द fooएक नए बफर में हैं। मैं बिना सभी लाइनों को छिपाने के लिए TextFX प्लगइन का उपयोग कर सकता हूं foo, लेकिन यह वह सब नहीं करता है जो मैं चाहता हूं (यह खो गया है Alt- Tab, मैं केवल मिलान लाइनों, आदि की नकल नहीं कर सकता)।

जवाबों:


79

Ctrl+ F-> मार्क टैब पर जाएं -> बुकमार्क लाइन टॉगल करें -> मार्क ऑल पर क्लिक करें ।

मेनू खोज -> बुकमार्क -> बुकमार्क लाइनों को कॉपी करें चुनें ।


5
अच्छा धन्यवाद। आप एक गरीब आदमी के लिए grep -vभी 'बुकमार्क लाइनों को काट सकते हैं' ।
एआरआरजी

2
बाद के संस्करणों में, उदाहरण के लिए 5.4.5, कोई "मार्क" टैब नहीं है। इसके बजाय, "खोजें" टैब में एक चेकबॉक्स, "मार्क लाइन" है। और "कॉपी बुकमार्डेड लाइन्स" को "खोज" मेनू में बहुत ही पसंद किया जाता है।
पीटर मोर्टेंसन

@ आरआरजी वर्तमान संस्करण में कट की गई बुकमार्क लाइनों या कॉपी किए गए बुकमार्क लाइनों को नहीं खोज सकता, यह कहां है?
निकोलस थ्री

चार्मिंग की तरह काम करना :-)
सुंदरराज गोविंदसामी

12

मैं बस इसी सवाल पर गौर कर रहा था। मुझे यकीन नहीं है कि आप जागरूक हैं; फाइंड डायलॉग में, आप ऑल इन करंट डॉक्यूमेंट ढूंढ सकते हैं जो नीचे की ओर एक विंडो को मेल खाते हुए लाइनों को दिखाएगा। फिर आप इसे एक नए दस्तावेज़ में कॉपी कर सकते हैं।

दुर्भाग्य से, इसमें परिणामों (लाइन नंबर, आदि) में कुछ बाहरी जानकारी शामिल है, लेकिन आप कॉलम मोड का उपयोग करके इसे फ़िल्टर कर सकते हैं।


1
अतिरिक्त पंक्ति संख्या भी एक सुविधा हो सकती है :)
फ्रैंक म्यूलर

2
आपको यह प्लगइन उपयोगी कोड मिल सकता है। http
//www.p/searchplus

@Amarghosh अच्छा प्लगइन, लेकिन एर्गोनॉमी का थोड़ा अभाव है (बटन और कीबोर्ड कीबोर्ड क्यों नहीं?)। अच्छा कैच :)
बेंज एपीस

@Benji Alt-Q प्लगइन लॉन्च करेगा। भले ही प्लगइन विंडो में कोई शॉर्टकट कुंजियाँ नहीं हैं, लेकिन बेसिक टैब नेविगेशन सक्षम किया गया है। यदि प्लगइन में पर्याप्त रुचि है, तो मैं कुछ समय मिलते ही अधिक सुविधाओं को जोड़ने का प्रयास करूंगा। प्रतिक्रिया के लिए धन्यवाद :)
अमरघोष

2

एक और महान समाधान नोटपैड ++ के लिए grep कमांड जोड़ने के लिए NppExec प्लगइन का उपयोग करना है।

"बुकमार्क" समाधान पर मुख्य लाभ यह है कि यह विशेष रूप से बड़ी फ़ाइलों के लिए बहुत तेज़ी से चलता है और आपको अपनी मूल फ़ाइल को संशोधित करने की आवश्यकता नहीं है। ध्यान दें कि आपको अपने नोटपैड ++ में यह सुविधा उपलब्ध कराने के लिए एक बार एक छोटी स्क्रिप्ट बनानी होगी।

मेरा समाधान उदाहरण विंडोज के लिए है और मैं खोज का उपयोग करता हूं , जो कि सभी विंडोज मशीनों पर उपलब्ध एक grep जैसा कमांड टूल है। लेकिन आप निश्चित रूप से अपनी पसंद के किसी अन्य grep क्लोन का भी उपयोग कर सकते हैं ।

चरण 1: NppExec प्लगइन स्थापित करें

पर जाएं Plugins / Plugin Manager / Show Plugin Manager, नीचे NppExec तक स्क्रॉल करें, इस प्लगइन का चयन करें और इंस्टॉल पर क्लिक करें। स्थापना प्रक्रिया को पूरा करने के लिए आपको अपना नोटपैड ++ पुनः आरंभ करना पड़ सकता है।

चरण 2: NppExec के लिए एक छोटी स्क्रिप्ट बनाएँ

Plugins / NppExec / Executeनिम्नलिखित स्क्रिप्ट में जाएं , और इसे "grep" के रूप में सहेजें:

SET local OUTFILE = "c:\temp\$(FILE_NAME).temp"
INPUTBOX "Input filter string"
cmd /c findstr $(INPUT) "$(FULL_CURRENT_PATH)" >$(OUTFILE)
NPP_OPEN $(OUTFILE)

(कृपया जांचें कि OUTFILE के लिए पथ आपके पर्यावरण के लिए काम करता है)

चरण 3: अपनी स्क्रिप्ट के लिए एक मेनू आइटम जोड़ें (वैकल्पिक)

इसके नीचे जाएं Plugins / NppExec / Advanced Options, स्क्रिप्ट "grep" चुनें Associated scriptऔर सहेजने के लिए ठीक क्लिक करें। नए मेनू आइटम को पूरा करने के लिए NppExec द्वारा अनुरोध के अनुसार नोटपैड को पुनरारंभ करें।

चरण 4: अपनी स्क्रिप्ट के लिए एक शॉर्टकट जोड़ें (वैकल्पिक)

Settings / Shortcut Mapper / Plugin commandsअपने स्क्रिप्ट कमांड "grep" को खोजने के लिए नीचे जाएं और इसके लिए एक शॉर्टकट परिभाषित करें। जैसेALT-G


सबसे पहले, एक शानदार उत्तर के लिए धन्यवाद जो अप करने के लिए वर्षों से इंतजार कर रहा है ...: -) मुझे लगा कि मुझे स्क्रिप्ट के साथ कुछ समस्याएं हो रही थीं, यह काम नहीं किया। फिर मैंने देखा कि हम पथों को अनुकूलित करना चाहते हैं, आदि, लेकिन आपने इसका स्पष्ट रूप से उल्लेख नहीं किया है, इसलिए मैं बस आँख बंद करके कॉपी-पेस्ट कर रहा हूँ! ) -: मैं इतनी तेजी से यह मुझे धीमा कर देती है नीचे काम
PGR

प्रतिक्रिया के लिए बहुत बहुत धन्यवाद। मैं अपने जवाब में इसे जोड़ दूंगा।
एरिक कालकोकेन

एक और छोटा नोट: $(FULL_CURRENT_PATH)यदि फ़ाइल अभी तक सहेजी नहीं गई है तो कोई रास्ता नहीं देगा। आप उम्मीद कर सकते हैं कि वह कहीं न कहीं निवास करेगा (अस्थायी निर्देशिका?), लेकिन वास्तव में नहीं। यह सहेजे नहीं गए फ़ाइल की स्थिति काफी सामान्य हो सकती है, आप इसे लॉग करने के लिए लॉग से कुछ पेस्ट करते हैं ... फ़ाइल को सहेजने के लिए हम इस स्क्रिप्ट को सही कर सकते हैं यदि इसे अभी तक सहेजा नहीं गया है - लेकिन सादगी के लिए मैं बस खुद को बचाने के लिए याद दिलाऊंगा मैन्युअल रूप से हरियाली से पहले। धन्यवाद।
11

क्या यह काम करता है यदि खोज स्ट्रिंग में स्थान है? या अन्य विशेष वर्ण?
जी-मैन का कहना है कि 'मोनिका'

हाँ जो काम करता है
एरिक कालकोकेन

-1

चरण 5: त्वरित सहेजें और grep दस्तावेज़ के लिए स्क्रिप्ट बनाएं

प्लगइन्स / NppExec / Execute पर जाएं, निम्न स्क्रिप्ट दर्ज करें और इसे "grep" के रूप में सहेजें:

SET लोकल AUTOSAVEFILE = "% tmp% \ NpPPautosave.tmp"
SET local OUTFILE = "% tmp% \ NpPPautosaveToGrep.temp"
NPP_SASAS "% tmp% \ NpPPileile.tmp"
INPUTBOX "INPUTBOX" इनपुट स्ट्रिंग फॉर जीआरपीपी "में
cmp। ) $ (AUTOSAVEFILE)> $ (OUTFILE)
NPP_OPEN $ (OUTFILE)


चरण 1, 2, 3 और 4 कहां है?
पियरे.विरेंस

(1) हम पसंद करते हैं, सबसे बड़ी हद तक संभव है कि उत्तर अकेले खड़े हों। ऐसा लगता है कि वहाँ (कम से कम) एक कदम जो किसी को आपके उत्तर का उपयोग करने से पहले किया जाना है (संकेत: चरण 1); कृपया इसे अपने उत्तर में शामिल करें। (२) यह बहुत दृढ़ता से प्रकट होता है कि आपका उत्तर एरिक कालकोकेन के कंधों पर खड़ा है । यदि आप ऐसा करने जा रहे हैं, तो आपको स्पष्ट रूप से ऐसा कहना चाहिए। … (Cont'd)
जी-मैन ने कहा कि मोनिका '

(Cont'd)… (3) क्या आपका उत्तर एरिक की तुलना में बेहतर है? यदि हां, तो कृपया बताएं कि कैसे और क्यों। (वास्तव में, यह अच्छा होगा यदि आप बताएंगे कि उत्तर क्या करता है, और इसका उपयोग कैसे करना है।) यदि नहीं, तो आपने इसे क्यों पोस्ट किया है? (४) क्या आप मानते हैं कि मौजूदा फ़ाइल नाम के आधार पर हार्ड-कोडेड आउटपुट फ़ाइलनाम का उपयोग करना बेहतर है, जो एक से अधिक है? (५) क्या findstrवर्तमान फ़ाइल के बजाय ऑटोसेफ़ाइल पर चलने का कुछ लाभ है ? (6) अपने जवाब का प्रयोग क्यों करता है दोनों C:\temp और C:\tmp? …… कृपया टिप्पणियों में प्रतिक्रिया न दें; इसे स्पष्ट और अधिक पूर्ण बनाने के लिए अपना उत्तर संपादित करें।
जी-मैन का कहना है कि 'मोनिका'

(1) "एक कदम जो किसी के सामने किया जाना है" - सभी एरिक 1 से 4 तक फैलते हैं (2) आपके पास टिप्पणी करने के लिए 50 प्रतिष्ठा होनी चाहिए। (एरिक पोस्ट पर टिप्पणी करने के लिए) (3) हां, मेरा उत्तर छोटा बेहतर है, क्योंकि एरिक का उत्तर दस्तावेज के हार्डडिस्क में सहेजे जाने से पहले काम नहीं करता है। मैं इसे grep के लिए अस्थायी फ़ाइल नहीं सहेजना चाहता। "उत्तर क्या करता है, और इसका उपयोग कैसे किया जाए" - मेरा कोड सिर्फ नोटपैड ++ में खोले गए पाठ को बचाने के लिए hdd में अस्थायी फ़ाइल में है। यह लाइन "NPP_SAVEAS" है जो स्वचालित रूप से hdd पर पाठ को बचाती है। (४) नहीं! ठीक नहीं। (५) जी हाँ! एरिक कोर काम नहीं करता है, हार्डड्राइव से बचाने से पहले, मेरे (3) उत्तर को देखें।
Kasumiru

(६) सोरी, मैं जल्दी और गलती में था, मेरी खिड़कियों की साइबर टीएमपी और टेंप डायर हैं। "कृपया टिप्पणियों में जवाब न दें" - सॉरी, लेकिन मैं इस टिप्पणी को पढ़ने से पहले अपना जवाब लिख दूंगा
कासुमीरु
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.