इंक्रीमेंट करते समय यानिकिंग और पेस्टिंग


14

मैं विम में एक .sql फ़ाइल संपादित कर रहा हूँ:

INSERT INTO apps_forms (app_id, form_id) VALUES
(1, 1),

मैं जो करना चाह रहा हूं, वह (1, 1),लाइन है और इसे 137 बार पेस्ट करना है; हालाँकि, मैं चाहता हूं कि हर बार कोष्ठक में दूसरी संख्या बढ़ाई जाए। आउटपुट जैसा दिखेगा:

INSERT INTO apps_forms (app_id, form_id) VALUES
(1, 1),
(1, 2),
(1, 3),
...
(1, 137),

क्या विम में ऐसा करने का कोई तरीका है और, यदि हां, तो मैं किस कमांड का उपयोग करूंगा?

धन्यवाद!

जवाबों:


11

अपना कर्सर (1, 1),लाइन पर रखें फिर टाइप करें:

qaVypt)<C-a>q135@a

स्पष्टीकरण:

qaरजिस्टर के अंदर एक मैक्रो की रिकॉर्डिंग शुरू होती है (आप एक और पत्र चुन सकते हैं)।

Vyp वर्तमान लाइन को डुप्लिकेट करता है, पूरी लाइन (वी) का चयन करके, इसे (वाई) कॉपी करके और फिर नीचे (पी) चिपकाकर।

t) कर्सर को अगले बंद कोष्ठक के ठीक पहले ले जाएँ, ताकि वह दूसरे नंबर पर हो।

<C-a>( Ctrlऔर a) संख्या बढ़ाता है।

q मैक्रो की रिकॉर्डिंग समाप्त करता है।

135@aरजिस्टर में संग्रहीत मैक्रो रिप्ले एक 135 बार।

संपादित करें: पीटर रेंकर के पास एक छोटी कमांड है:

qqYpW<c-a>q135@q

अंतर हैं:

यह रजिस्टर का उपयोग करता क्ष (टाइप करने के लिए तेजी से मैक्रो स्टोर करने के लिए qqकी तुलना में qa, क्योंकि यह एक ही कुंजी है)
यह प्रतियां केवल एक कीस्ट्रोक के साथ लाइन Y(दो के बजाय Vy),
और यह केवल एक कीस्ट्रोक के साथ दूसरे नंबर पर कर्सर ले जाता है W(बजाय की t))।


4
विम गोल्फ qqyypW<c-a>q135@q:। यहां तक ​​कि अगर आप के Yबजाय का उपयोग करें yy
पीटर रिंकेर

10

हाल के विम्स ने दृश्य चयनित क्षेत्रों को बढ़ाने के साथ-साथ एक सीक्वेंस बनाने के बारे में सीखा है। तो आप अपनी लाइन को 137 बार चिपकाने के बाद ऐसा कर सकते हैं:

1) नेत्रहीन ब्लॉक-चयन ( Ctrl-V) लाइन 3 से शुरू होने वाला दूसरा 1।

2) दबाएँ gCtrl-A

मैंने यहां स्क्रीन कास्ट दर्ज किया है

डिस्क्लेमर: इसके लिए Vim 7.4.900 या तो चाहिए।


डेबियन / किनारे पर विम 7.4.826 में सफलतापूर्वक परीक्षण किया गया।
डबू

आपका पेंचकस गायब हो गया है, लेकिन यह तरीका बहुत अच्छा है! धन्यवाद।
david_nash

2

आसान समझने के लिए / याद रखने में आसान / आसान अन्य स्थितियों तरीका करने के लिए अनुकूल करने के लिए यह करने के लिए: का उपयोग VisIncr यदि आप बल्कि एक संस्करण का उपयोग जिस प्लग इन (जो वास्तव में के रूप में साथ काम कर करने का विरोध किया इस सदी से पैकेज प्रबंधकों के साथ अच्छा खेलता है vimballरों , आप इसे GitHub से प्राप्त कर सकते हैं )। इसके साथ:

  • करने के लिए जाने (1, 1),लाइन और यह झटका:Vy
  • इसे 136 बार पेस्ट करें: 136p
  • के दूसरे कॉलम पर जाएं 1और इसे लंबवत रूप से चिह्नित करें:C-vGf)h
  • वेतन वृद्धि: :II
  • अन्य अच्छाइयों के बारे में जानने के लिए मैनुअल पढ़ें :help visincr:।

1

मैं साथ खेलूँगा g^a

कोशिश करो 137i0^v137kg^a


1
Vi और विम में आपका स्वागत है ! मैंने मार्कडाउन का उपयोग करके आपके उत्तर को स्वरूपित किया है। यह बेहतर होगा यदि आप यह समझाने के लिए संपादन करें कि यह ओपीएस प्रश्न का उत्तर कैसे देता है।
डी। बेन नोबल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.