मैं अनुक्रमिक संख्याओं की सूची कैसे बना सकता हूं, प्रति पंक्ति एक?


38

एक खाली स्लेट से शुरू करके, मैं एक दस्तावेज कैसे प्राप्त कर सकता हूं जिसमें शामिल है

1
2
3
4
5
6
7
8
9
10
…
100

स्पष्ट होने के लिए, मैं नहीं चाहता कि ये संख्याएँ मार्जिन में प्रदर्शित हों; मैं उन्हें दस्तावेज में ही सम्मिलित करना चाहता हूं।

जवाबों:



18

अंडरो के शुद्ध-विम के अलावा :put =range(1,100)(जो वास्तव में आपको एक रिक्त लाइन अप टॉप के साथ छोड़ देता है), आप अपने ओएस पर निर्भर करते हुए, इसके किसी एक कमांड का उपयोग कर सकते हैं। जैसे, यूनिक्स / लिनक्स बॉक्स पर:

%!seq 1 100

उपरोक्त पूरे (खाली) बफर को पाइप करके काम करता है seq, जो इसके इनपुट को नजरअंदाज करता है और सिर्फ 1 से 100 नंबर का आउटपुट देता है। विम तो पूरे बफर को seqआउटपुट के साथ बदल देता है ।

यह उपयोगी है जब आप पहले से ही कुछ कमांड-लाइन तरीके से परिचित हों जो आप चाहते हैं।


यह सवाल "" करता है जो मुझे लगता है कि यह स्वीकार किए जाते हैं की तुलना में बेहतर है। हां, आप वीम को काम कर सकते हैं, जैसे आप सूप को हिलाए जाने के लिए एक अर्धचंद्राकार रिंच का उपयोग कर सकते हैं। विम एक पाठ संपादक है, न कि एक मनमाना पाठ जनरेटर; उसके लिए बहुत अधिक स्पष्ट उपकरण हैं।
msw

16

रिकॉर्ड के लिए, और निश्चित रूप से सबसे छोटा तरीका नहीं है (देखें @ अनडू का भयानक समाधान), लेकिन कीस्ट्रोक्स का क्रम इसे पूरा करेगा:

i1EscqaYpCtrl+aq98@a

मुझे तुम्हारे लिए नीचे तोड़:

  1. i1<Esc> - नंबर 1 डालें, फिर कमांड मोड पर वापस जाएं
  2. qa - रजिस्टर में मैक्रो रिकॉर्ड करना शुरू करें "a"
  3. Y - करंट लाइन को कॉपी करें
  4. p - करंट लाइन पेस्ट करें (कर्सर भी चिपकाई गई लाइन पर जाएगा)
  5. <Ctrl>a - लाइन पर अगला नंबर बढ़ाएँ, इसे 2 करें
  6. q - मैक्रो को रिकॉर्ड करना बंद करें ("रजिस्टर ए")
  7. 98@a - रजिस्टर में मैक्रो फिर से खेलना "a" 98 बार

4

यहां एक अलग दृष्टिकोण है, जिसे एक नई विम (7.4.800 की तरह कुछ) की आवश्यकता है

यह रजिस्टर में एक खाली बफर और '1' मानता है। सबसे पहले, अपने बफर में 100 1 में प्रवेश "a100P

फिर नेत्रहीन 100 तक 2 लाइनों का चयन करें :2EnterVG

अब gCtrl+ दबाएं A

मदद पर पढ़ें :h v_g_CTRL-A


आपको अपने उत्तर में let @ a = "1" जोड़ना होगा। रजिस्टर में मूल्य 1 को कैसे स्टोर किया जाए, यह जानने के लिए शुरुआती अटक सकते हैं।
सिबिओडर

मैंने gCtrl + A कॉम्बो को अन्य समान समाधानों में देखा है। हालाँकि मैं इस बारे में स्पष्टीकरण नहीं दे पाया कि यह क्या कर रहा है / यह कैसे काम करता है? क्या आपके पास प्रलेखन में एक संदर्भ है जो बताता है कि जी क्या करता है? धन्यवाद! अगर मुझे कोई स्पष्टीकरण मिलता है तो मैं इसे पोस्ट करूंगा।
कोडिंगफू

1
प्रलेखन है:h g_CTRL-A
क्रिश्चियन Brabandt

मैंने v_g_CTRL-A सेक्शन का लिंक मिस कर दिया था।
कोडिंगफू

2

मुझे पता है कि यह प्रश्न वास्तव में पुराना है, लेकिन एक और तरीका है जिससे आप इसे भी कर सकते हैं। इसे इस्तेमाल करे:

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.
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.