विम, 22 , 18 कीस्ट्रोक्स
O <esc>J:h r<cr>lyEZZ<C-v>{@"
@Udioica के लिए बहुत बड़ा श्रेय जब तक कि मैंने इस पर विस्तार नहीं किया। इस जवाब में इनाम जीतने की उम्मीद में कोई तारांकन नहीं है।
स्पष्टीकरण:
बाकी प्रोग्राम से पहले इनपुट टाइप किया जाता है। Udioica इस भयानक चाल के साथ आया था। टंकण <n>O <esc>
एक रिक्त स्थान और एक खाली रेखा का पिरामिड बनाएगा, जब तक आपने :set autoindent
सक्षम किया है। यह विकल्प विम 8 और नियोविम में डिफ़ॉल्ट रूप से आता है, हालांकि पुराने संस्करण नहीं हैं। चूंकि यह एक अतिरिक्त रेखा भी बनाता है, इसलिए हम J
अगले एक के साथ इस लाइन में शामिल होने के लिए उपयोग करते हैं, जो प्रभावी रूप से हमारे नीचे की रेखा को हटा देता है।
अब इस बिंदु पर, हमें इन सभी स्थानों को तारांकन के साथ बदलने की आवश्यकता है। यदि मैं अपने कोड में तारांकन का उपयोग करने के बारे में चिंतित नहीं था, तो मैं पूरी तरह से पूरी तरह से उस चीज़ <C-v>{
और प्रकार का चयन करूंगा r*
, जो चयन के प्रत्येक चरित्र को तारांकन के साथ बदल देता है। लेकिन मैं ऐसा नहीं कर सकता।
इसलिए हम मदद पृष्ठों को खोलते हैं :h r
। इसके बारे में दिलचस्प बात यह है कि विम-विंडो में, यह पृष्ठ इस प्रकार प्रदर्शित होता है:
r
r{char} Replace the character under the cursor with {char}.
...
पहले 'r' पर कर्सर के साथ। हालाँकि, फ़ाइल में वास्तव में यह पाठ शामिल है:
*r*
r{char} Replace the character under the cursor with {char}.
...
बहुत सुविधाजनक है। इसलिए हम एक अक्षर से आगे बढ़ते हैं l
, और पाठ r*
को yE
(इस शब्द के n [e] एन को [y] ak के साथ ) भरते हैं।
इस बफ़र को बंद करने के लिए, हम किसी फ़ाइल को सहेजने के लिए शॉर्टकट का उपयोग करते हैं ZZ
। अब, हम नेत्रहीन रूप से हमारे रिक्त स्थान का चयन करते हैं, और yanked पाठ को चलाते हैं जैसे कि हमने इसे करके टाइप किया था @"
। यह काम करता है क्योंकि "@" निम्नलिखित रजिस्टर को vim-keystrokes के रूप में चलाता है, और "yanking के लिए डिफ़ॉल्ट रजिस्टर है।