एक खाली स्लेट से शुरू करके, मैं एक दस्तावेज कैसे प्राप्त कर सकता हूं जिसमें शामिल है
1
2
3
4
5
6
7
8
9
10
…
100
स्पष्ट होने के लिए, मैं नहीं चाहता कि ये संख्याएँ मार्जिन में प्रदर्शित हों; मैं उन्हें दस्तावेज में ही सम्मिलित करना चाहता हूं।
एक खाली स्लेट से शुरू करके, मैं एक दस्तावेज कैसे प्राप्त कर सकता हूं जिसमें शामिल है
1
2
3
4
5
6
7
8
9
10
…
100
स्पष्ट होने के लिए, मैं नहीं चाहता कि ये संख्याएँ मार्जिन में प्रदर्शित हों; मैं उन्हें दस्तावेज में ही सम्मिलित करना चाहता हूं।
जवाबों:
उपयोग :put
और range()
:
:put =range(1,100)
शीर्ष पर रिक्त रेखा से बचने के लिए ( कुडोस से रोमेनल ), का उपयोग करें :0put
:
:0put =range(1,100)
अंडरो के शुद्ध-विम के अलावा :put =range(1,100)
(जो वास्तव में आपको एक रिक्त लाइन अप टॉप के साथ छोड़ देता है), आप अपने ओएस पर निर्भर करते हुए, इसके किसी एक कमांड का उपयोग कर सकते हैं। जैसे, यूनिक्स / लिनक्स बॉक्स पर:
%!seq 1 100
उपरोक्त पूरे (खाली) बफर को पाइप करके काम करता है seq
, जो इसके इनपुट को नजरअंदाज करता है और सिर्फ 1 से 100 नंबर का आउटपुट देता है। विम तो पूरे बफर को seq
आउटपुट के साथ बदल देता है ।
यह उपयोगी है जब आप पहले से ही कुछ कमांड-लाइन तरीके से परिचित हों जो आप चाहते हैं।
रिकॉर्ड के लिए, और निश्चित रूप से सबसे छोटा तरीका नहीं है (देखें @ अनडू का भयानक समाधान), लेकिन कीस्ट्रोक्स का क्रम इसे पूरा करेगा:
i1EscqaYpCtrl+aq98@a
मुझे तुम्हारे लिए नीचे तोड़:
i1<Esc>
- नंबर 1 डालें, फिर कमांड मोड पर वापस जाएंqa
- रजिस्टर में मैक्रो रिकॉर्ड करना शुरू करें "a"Y
- करंट लाइन को कॉपी करेंp
- करंट लाइन पेस्ट करें (कर्सर भी चिपकाई गई लाइन पर जाएगा)<Ctrl>a
- लाइन पर अगला नंबर बढ़ाएँ, इसे 2 करेंq
- मैक्रो को रिकॉर्ड करना बंद करें ("रजिस्टर ए")98@a
- रजिस्टर में मैक्रो फिर से खेलना "a" 98 बारयहां एक अलग दृष्टिकोण है, जिसे एक नई विम (7.4.800 की तरह कुछ) की आवश्यकता है
यह रजिस्टर में एक खाली बफर और '1' मानता है। सबसे पहले, अपने बफर में 100 1 में प्रवेश "a100P।
फिर नेत्रहीन 100 तक 2 लाइनों का चयन करें :2EnterVG।
अब gCtrl+ दबाएं A।
मदद पर पढ़ें :h v_g_CTRL-A
:h g_CTRL-A
मुझे पता है कि यह प्रश्न वास्तव में पुराना है, लेकिन एक और तरीका है जिससे आप इसे भी कर सकते हैं। इसे इस्तेमाल करे:
99o<esc>:%s/^/\=line('.')<cr>
99o<esc>
सिर्फ 100 खाली लाइनें खोलेगा। फिर, हम एक विकल्प कमांड चलाते हैं:
:% " On every line
s/ " substitute
^/ " the start of the line. (This will always match no matter what)
\= " Evaluate:
line('.') " The current line.
<C-r>=range(1,100)
।