2008-12-12 17 views

उत्तर

47

नोटपैड ++ में मैक्रोज़ एन्कोडेड ऑपरेशंस का एक गुच्छा हैं: आप रिकॉर्डिंग शुरू करते हैं, बफर पर काम करते हैं, शायद मेनू सक्रिय करते हैं, रिकॉर्डिंग को रोकते हैं और फिर मैक्रो खेलते हैं।
जांच के बाद, मुझे पता चला कि वे मैक्रोज़ अनुभाग में फ़ाइल शॉर्टकट्स.एक्सएमएल में सहेजे गए हैं। उदाहरण के लिए, मैं वहाँ है:

<Macro name="Trim Trailing and save" Ctrl="no" Alt="yes" Shift="yes" Key="83"> 
    <Action type="1" message="2170" wParam="0" lParam="0" sParam=" " /> 
    <Action type="1" message="2170" wParam="0" lParam="0" sParam=" " /> 
    <Action type="1" message="2170" wParam="0" lParam="0" sParam=" " /> 
    <Action type="0" message="2327" wParam="0" lParam="0" sParam="" /> 
    <Action type="0" message="2327" wParam="0" lParam="0" sParam="" /> 
    <Action type="2" message="0" wParam="42024" lParam="0" sParam="" /> 
    <Action type="2" message="0" wParam="41006" lParam="0" sParam="" /> 
</Macro> 

मैं स्रोत को देखा नहीं है, लेकिन देखो से, मैं कहूंगा कि हम स्फुलिंग को भेजे गए संदेश है (संपादन घटक, शायद टाइप 0 और 1), और नोटपैड ++ स्वयं (संभवतः मेनू आइटम सक्रिय करना)।
मुझे नहीं लगता कि यह संवाद में कार्रवाई रिकॉर्ड करेगा (जैसे खोज/प्रतिस्थापित)।

Scintilla.iface फ़ाइल को देखते हुए, हम देख सकते हैं कि 2170 रीप्लेससेल का कोड है (यानी सम्मिलित स्ट्रिंग कुछ भी नहीं चुना गया है), 2327 टैब कमांड है, और संसाधन हैकर (बस यह आसान है ...) दिखाता है कि 42024 "ट्रिम ट्रेलिंग स्पेस" मेनू आइटम है और 41006 "सेव" है।
मुझे लगता है कि कार्रवाई प्रकार 0 संख्यात्मक पैरा के साथ स्किंटिला कमांड के लिए है, टाइप 1 स्ट्रिंग पैरामीटर के साथ कमांड के लिए है, 2 नोटपैड ++ कमांड के लिए है।

समस्या: इसके साथ या पुष्टि के बिना, यात्रा करने के लिए ग्राहक का कार्य,
एक अन्य समस्या है आदि: इसे टाइप 1 कार्रवाई तक सीमित है लगता है एक कमांड "सभी बदलें" स्फुलिंग नहीं है 1 char (मैंने मैन्युअल रूप से संपादित किया, जब एन ++ से बाहर निकल गया तो इसे छोटा कर दिया गया था)।
मैंने कुछ चाल की कोशिश की, लेकिन मुझे डर है कि इस तरह के कार्य मैक्रो क्षमताओं से परे है।

हो सकता है कि जहां अपने लुआ पटकथा की क्षमता (या प्रोग्रामर नोटपैड जो अजगर के साथ स्क्रिप्ट हो रहा है) के साथ SciTE बढ़त है ... :-)

[संपादित करें] ऐसा लगता है कि मैं this thread से ऊपर मैक्रो मिला या एक समान स्थान ... :-) मुझे लगता है कि पहली पंक्ति अनावश्यक (साइड इफेक्ट या रिकॉर्डिंग) हैं लेकिन वे मैक्रो कोड के अच्छे उदाहरण थे।

+3

इस [विकी] (http://sourceforge.net/apps/mediawiki/notepad-plus/index.php?title=Editing_Configuration_Files#.3CMacros.3E) लेख विशेषता झंडे – Pete

+0

के टूटने btw है, यह रिकॉर्ड संवाद कार्रवाई करता है। मैंने दस्तावेज़ में कई बार खोजने/बदलने के लिए मैक्रो का उपयोग किया और यह पूरी तरह से काम किया। हालांकि आपको प्रत्येक खोज के बाद ठीक क्लिक करना होगा। – Derek

+0

लगता है कि यह इस फ़ाइल में सहेजा नहीं गया है जब आपके पास कीबोर्ड शॉर्टकट संबद्ध नहीं है ... –

1

इस पोस्ट में एक छोटे से संबंधित बिट के रूप में आप मदद कर सकते हैं:

Using RegEX To Prefix And Append In Notepad++

अक्षरांकीय शब्द मान लिया जाये, तो आप उपयोग कर सकते हैं:

खोजें =^([एक-zA-Z0-9 ] +) $ बदलें = सक्षम: "\ 1"

या, यदि आप सिर्फ लाइनों पर प्रकाश डाला और उपयोग करना चाहते हैं & "चयन में" की जगह "सभी बदलें" (एक ही साथ):

खोज =^(। +) $

^रेखा की शुरुआत के लिए अंक। लाइन के अंत तक $ अंक।

\ 1 कोष्ठक के भीतर स्रोत मिलान होगा।

0

दरअसल, शॉर्टकट्स.एक्सएमएल फ़ाइल स्टोर उपयोगकर्ता द्वारा जेनरेट किए गए मैक्रोज़ और कोई स्पष्ट उम्मीदवारों को यह जानकारी नहीं है। ये निर्देश पुराने हैं।

विभिन्न वेबसाइटों की युक्तियों के विपरीत, उपयोगकर्ता द्वारा जेनरेट किए गए मैक्रोज़ को संग्रहीत करना v.5.4.2 के लिए सक्षम नहीं है। वह एक्सएमएल फ़ाइल वहां है, लेकिन आपका मैक्रो इसे संग्रहीत नहीं करता है।

मुझे लगता है कि यह एक बग है जो अगले संस्करण द्वारा तय किया जाएगा।

+6

-1: यह प्रश्न का उत्तर नहीं देता है। –

+1

कैसे सुविधा काम नहीं कर रही थी! (उम्मीद है कि, अब यह तय किया गया है।) – svend

+0

यह अभी भी 5.6.4 में काम नहीं करता है। ओह। –

0

मुझे यकीन नहीं है कि यह मदद करता है, लेकिन मुझे स्निपेट रखने के लिए मैक्रो बनाने की आवश्यकता है, इसलिए मैंने बस आइटम को डालने और इसे शॉर्टकट सेट करने के लिए रिकॉर्ड किया। अनुमोदित, मैं संस्करण 5.9 का उपयोग नहीं कर रहा हूं इसलिए कुछ मामूली संस्करण अंतर हो सकते हैं। मैक्रो रिकॉर्डर तक पहुंचने के लिए मैक्रो> स्टार्ट रिकॉर्डिंग पर जाएं। फिर आप अपनी कार्रवाई करेंगे और फिर मैक्रो> स्टॉप रिकॉर्डिंग पर जाएं। मैं यह सुनिश्चित करने के लिए इसे वापस खेलने की अनुशंसा करता हूं कि यह सही है और फिर अपनी शॉर्टकट कुंजी को सहेजें और सेट करें।

आशा करता है कि मदद करता है।

0

मैंने इसे v5.9.1 में किया है। बस मैक्रो मेनू पर जाएं, "रिकॉर्डिंग प्रारंभ करें" पर क्लिक करें, अपने 3 को सभी आदेशों को प्रतिस्थापित करें, फिर रिकॉर्डिंग रोकें। फिर आप "वर्तमान रिकॉर्ड किए गए मैक्रो को सहेजें" का चयन कर सकते हैं, और इसे जितनी बार चाहें उतनी बार वापस चला सकते हैं, और यह आपकी अपेक्षाओं के अनुसार प्रतिस्थापन करेगा।

8

मैंने एक मैक्रो रिकॉर्ड किया और मुझे इसे% APPDATA% \ Notepad ++ \ shortcuts.xml में मिला। ऐसा लगता है कि इस धागे की पहली पोस्ट में पोस्ट किया गया है।

मैं एनपीपी वेर का उपयोग करता हूं। Win7 के साथ 5.9.6.2।

+2

यह फ़ाइल तब तक सहेजी नहीं जाती जब तक नोटपैड ++ बंद न हो जाए। – northben

11

मैं 'अजगर स्क्रिप्ट' नोटपैड के लिए प्लगइन ++ अधिक उपयोगी प्लगइन के साथ के बाद से, मैं अजगर के रूप में सरल मैक्रो लिख सकता है और यह भी बहुत अच्छा दस्तावेज और नमूना मैक्रो अजगर में लिखा रूप में अच्छी तरह मिल गया है पाया। यदि आप अजगर के साथ काफी सहज हैं, तो मुझे लगता है कि 'पायथन स्क्रिप्ट' न्याय प्रदान करेगा। अधिक जानकारी के लिए देखें: http://npppythonscript.sourceforge.net/

+0

यह स्वीकार्य उत्तर होना चाहिए! – slonik

+0

मैंने पाया कि मुझे पाइथन स्क्रिप्ट 1.0.8.0 इंस्टॉल करना था क्योंकि प्लगइन प्रबंधक द्वारा इंस्टॉल किया गया एक छोटी है – slonik

1

मेरा व्यक्तिगत अनुभव है कि shortcuts.xml शुरू में भरी हुई + बाद में दर्ज की गई मैक्रो और सेटिंग्स जब Notepad ++ बाहर निकलता है के साथ ओवरराइट किया जाता है। तो आप इस फ़ाइल को संपादित करने के लिए नोटपैड ++ का उपयोग नहीं कर सकते हैं।

नोटपैड ++ बंद करें, किसी अन्य टूल द्वारा शॉर्टकट्स.एक्सएमएल संपादित करें, इसे सहेजें और नोटपैड ++ को पुनरारंभ करें।