विम: 231 प्रमुख कमांड
ध्यान दें कि किसी भी वर्ण से पहले ^ का मतलब है कि आपको उस चरित्र को लिखते समय नियंत्रण रखना चाहिए
mbomayiwo^V^R"^V^V^V^X ^V^["sy0dd`a@f ^["bc0yiwo^V^V^V^X^V^R"^V^[0l@sa^V^V^V^A-^V^[0f-"ayhdd`a@i ^["dc0mbyiwo^V^R"Exe@b^V^[0fel"ty2ldd`b@t ^["ec0wmbyiwo@f @d^V^[@z ^["fc0"xyiwwmbyiwocw^V^V^V^Rx^V^V^V^[@a@i @e^V^[@z ^["ic0IB0 B^V^R" ^V^OWB0 ^V^OA B0^V^[0*w"tyiWdd`b@t ^["zd0dd`bAe^[0@e
कदम ताकि आप भी इसे चला सकें!
- लाइन को विम में कॉपी करें
- टाइप करें
:s/\^V/<Ctrl-V><Ctrl-V>/g
और एंटर दबाएं (दो एस आपको एक नीला ^ वी देना चाहिए)
- टाइप करें
:s/\^R/<Ctrl-V><Ctrl-R>/g
और एंटर दबाएं (आपको नीला ^ अब देखना चाहिए)
- टाइप करें
:s/\^X/<Ctrl-V><Ctrl-X>/g
और एंटर दबाएं (आपको नीला ^ Xs अभी देखना चाहिए)
- टाइप करें
:s/\^O/<Ctrl-V><Ctrl-O>/g
और एंटर दबाएं
- टाइप करें
:s/\^A/<Ctrl-V><Ctrl-A>/g
और एंटर दबाएं
- टाइप करें
:s/\^\[/<Ctrl-V><Ctrl-[>/g
और एंटर करें (यह कमांड थोड़ा अलग है क्योंकि मुझे बचने के लिए आवश्यक था [)
- टाइप करें
0"yy$
। कमांड अब y रजिस्टर में संग्रहीत है
- एक लाइन पर इनपुट सेट करें, और साथ चलाएं
@y
यदि कोई व्यक्ति कमांड साझा करने का बेहतर तरीका जानता है, तो कृपया मुझे बताएं। मुझे पता है कि यह लंबा है, लेकिन यह सबसे अच्छा है जिसके साथ मैं आ सकता हूं।
इनपुट आउटपुट
फाइल में किसी भी लाइन पर इनपुट स्ट्रिंग अकेले होनी चाहिए। 1 0 0 4 3 0 0 0 7
आउटपुट केवल इनपुट स्ट्रिंग 1 2 3 4 3 4 5 6 7 को अधिलेखित करेगा
व्याख्या
कलन विधि
- एक गैर-शून्य नंबर पर शुरू करें, सुनिश्चित करें कि यह अंतिम संख्या नहीं है
- अगले गैर-शून्य संख्या का पता लगाएं
- उनका अंतर लो। यदि उत्तर नकारात्मक है, तो आपको सीमा को सुधारने के लिए वेतन वृद्धि करनी चाहिए, अन्यथा सीमा को सुधारने के लिए वेतन वृद्धि।
- पहले वर्ण पर वापस जाएं और पिछले संख्या को बढ़ा / घटाकर प्रत्येक शून्य को बदलें।
- तब तक दोहराएं जब तक आप आखिरी पात्र तक नहीं पहुंच जाते
मैक्रोस का इस्तेमाल किया
@e - अंत के लिए जाँच करें। अंतिम संख्या में एक ई संलग्न होगा। यदि कर्सर के नीचे की संख्या में अंत में ई है, तो ई हटाएं और निष्पादन को रोक दें। अन्यथा, @ बी के साथ एक प्रक्षेप चक्र शुरू करें।
mbyiwo^R"Exe@b^[0fel"ty2ldd`b@t
@ बी - प्रक्षेप चक्र शुरू करें। घटाव ऑपरेशन (@s) के लिए कर्सर के नीचे की संख्या को सहेजें और फिर अगला गैर-शून्य शब्द (@f) ढूंढें।
mayiwo^R"^V^X ^["sy0dd`a@f
@ एस - @ डी में उपयोग करने के लिए घटाव कमांड को स्टोर करता है। यह केवल वह (val)^X
जगह (val)
है जहां प्रक्षेप कदम की शुरुआत में संख्या है। यह @b कमांड द्वारा सेट किया गया है।
@f - अगला गैर-शून्य शब्द खोजें। अनाम मान को वर्तमान मान लिखें, फिर @f @d
अगली पंक्ति पर लिखें , और फिर @z चलाएं। यदि संख्या शून्य है, तो यह इस आदेश को दोहराएगा और यदि यह नहीं है तो @d निष्पादित करें।
wmbyiwo@f @d^[@z
@z - अनाम पंजिका होने पर सशर्त क्रियान्वयन 0. यह कमांड प्रारूप में एक नई लाइन पर दो कमांड की उम्मीद करता है command1 command2
। यदि अनाम कोड 0 है, command1
तो निष्पादित किया जाता है, अन्यथा command2
निष्पादित किया जाता है। ध्यान दें कि न तो कमांड में कोई स्पेस हो सकता है।
IB0 B^R" ^OWB0 ^OA B0^[0*w"tyiWdd`b@t`
@ टी - अस्थाई कमांड रजिस्टर। उन्हें क्रियान्वित करने से पहले थोड़े समय के लिए विभिन्न कमांड स्टोर करें। मुख्य रूप से अगर बयानों में उपयोग किया जाता है।
@d - प्रक्षेप दिशा निर्धारित करें। कर्सर (@ का उपयोग करके) के तहत संख्या से अनुक्रम में पहले नंबर को घटाता है। यदि परिणाम नकारात्मक है, तो प्रक्षेप को घटाना होगा इसलिए ^ X को @a में सहेजा गया है। अन्यथा, हमें वेतन वृद्धि करनी चाहिए ताकि ^ ए @ @ को बचाया जाए। एक बार जब यह सहेजा जाता है, तो इस प्रक्षेप चक्र की शुरुआत में वापस जाएं और @i को वास्तव में प्रक्षेपित करें
yiwo^V^X^R"^[0l@sa^V^A-^[0f-"ayhdd`a@i
@a - स्टोर या तो ^A
या ^X
प्रक्षेप चरण के दौरान वेतन वृद्धि या कमी करने के लिए। यह @d कमांड द्वारा सेट किया गया है।
@ आई - इंटरपोलेट। वर्तमान स्थान पर नंबर को @x पर कॉपी करें और अगले नंबर पर जाएं। यदि वह संख्या शून्य है, तो इसे @x से बदलें और @a को ठीक से ऊपर या नीचे संशोधित करने के लिए चलाएं, फिर इस आदेश को दोहराएं। यदि संख्या शून्य नहीं है, तो हम इस प्रक्षेप चक्र के अंत तक पहुँच चुके हैं। शुरुआत के रूप में इस नंबर के साथ एक नया शुरू किया जाना चाहिए, इसलिए अंत की जांच करने के लिए @e चलाएं और फिर से चलाएं।
"xyiwwmbyiwocw^V^Rx^V^[@a@i @e^[@z
@x - अस्थायी संग्रहण रजिस्टर। प्रक्षेप कमांड (@i) में प्रयुक्त
कीस्ट्रोक्स को तोड़ना
mbo :Set b mark to current position and open a new line below to write macros
mayiwo^V^R"^V^V^V^X ^V^["sy0dd`a@f ^["bc0 :Write to @b and reset line
yiwo^V^V^V^X^V^R"^V^[0l@sa^V^V^V^A-^V^[0f-"ayhdd`a@i ^["dc0 :Write to @d and reset line
mbyiwo^V^R"Exe@b^V^[0fel"ty2ldd`b@t ^["ec0 :Write to @e and reset line
wmbyiwo@f @d^V^[@z ^["fc0 :Write to @f and reset line
"xyiwwmbyiwocw^V^V^V^Rx^V^V^V^[@a@i @e^V^[@z ^["ic0 :Write to @i and reset line
IB0 B^V^R" ^V^OWB0 ^V^OA B0^V^[0*w"tyiWdd`b@t ^["zd0 :Write to @z and reset line
dd`b :Delete this line and move cursor back to original line
Ae^[ :Append an e to the last number
0@e :Move to the beginning of the line and run
0
हमारे कार्यक्रम के बजाय एक और मूल्य ले सकते हैं जैसेnull
?