मैं एक रजिस्टर में कई लाइनें कैसे जमा कर सकता हूं?


44

मैं दस्तावेज़ में अलग-अलग टेक्स्ट टेम्प्लेट को आसानी से पेस्ट करने के लिए, एक ही रजिस्टर में कई पंक्तियों को एक साथ रजिस्टर करना चाहता हूं।

उदाहरण के लिए, "iyy केवल वर्तमान लाइन को yanks करता है, अगर मैं विजुअल-मोड में कई लाइनों का चयन करने की कोशिश करता हूं, तो यह रजिस्टर में नहीं लिखा जाता है।

कोई सुझाव?


"अगर मैं विज़ुअल-मोड में कई लाइनों का चयन करने की कोशिश करता हूं, तो यह रजिस्टर में नहीं लिखा है।" <- सच? मेरे लिए काम करता है ...
बिली ओनली

और मेरे लिए भी ...
ulidtko

आह ठीक है, मैं "iyv, मूर्खतापूर्ण मुझे के साथ की कोशिश करनी चाहिए। Vjjj होना चाहिए" मैं ulidtko की तरह उल्लेख किया है।
ryż

जवाबों:


59

3Yडिफ़ॉल्ट रजिस्टर में 3 लाइनों का उपयोग करें ; "i3Yरजिस्टर में yanking के लिए मैं।

इसके अलावा, मेरा पसंदीदा तरीका उन पंक्तियों को गिनना नहीं है जिन्हें मैं यैंक करना चाहता हूं, लेकिन उन्हें दृश्य मोड में Vकमांड के माध्यम से और स्थानांतरित करने के लिए चुनना है , और फिर yइसे "_yयैंक में या एक रजिस्टर में यांक करने के लिए मारा ।

इसके अलावा, मैंने सिर्फ विज़ुअल लाइन मोड में कई लाइनों का चयन करने की कोशिश की है और न कि डिफ़ॉल्ट रजिस्टर, जैसे Vjjj"oy- और में काम करता है।


1
+1 - लेकिन Vविजुअल लाइन मोड है, vविजुअल मोड है।
बिली ओनली

ठीक है, ठीक है, ठीक है। विजुअल लाइन मोड। %)
ulidtko

1
ख़ुशी से इसे स्वीकार किया, मेरे लिए सबसे तेज़ तरीका है।
रयज

24

फ़ाइल के भीतर कहीं से भी, आप निम्न का उपयोग कर सकते हैं।

:2,5y a

Yank लाइन्स 2 - 5. इन में रजिस्टर करें

:7pu a

7 के तहत एक रजिस्टर पेस्ट करें।


1
सवाल पूछा गया, "मैं एक रजिस्टर में कई लाइनें कैसे जमा कर सकता हूं ?" कृपया बताएं कि ये आदेश रजिस्टरों के साथ कैसे काम करते हैं।
स्कॉट

मुझे आशा है कि मेरा संपादन आपके अनुरोध को पूरा करेगा।
alock27

नहीं, माफ करिए। प्रश्न का स्पष्ट रूप से "रजिस्टर" बार-बार उल्लेख किया गया है, जिसे "आसानी से अलग-अलग टेक्स्ट टेम्प्लेट पेस्ट करना" कहा जाता है, और एक गैर-डिफ़ॉल्ट रजिस्टर का उपयोग करके एक उदाहरण दिया गया है।
स्कॉट

3
@ मेरी क्षमा याचना आपने सिर्फ यह क्यों नहीं कहा, "यार, अपने तरीके की जाँच करें: reg। आप देखेंगे कि यह काम नहीं करता है।" और मैं सबको पसंद कर रहा था, "वाह, मेरा बुरा"।
alock27

1
सिस्टम क्लिपबोर्ड पर कॉपी करने के लिए रजिस्टर + में कौन फ़ाइल को yank करने के लिए एक रास्ता खोज रहा था। :% y + ने चाल चली, धन्यवाद।
एलेक्सा

10

mबफर नाम के साथ प्रारंभ को चिह्नित करने के लिए उपयोग करें (ताकि आप टाइप कर सकें mx)। अपने कर्सर को नीचे ले जाएँ जहाँ आप प्रतिलिपि बनाना चाहते हैं, और टाइप करें y'x(या d'xयदि आप काट रहे हैं और चिपका रहे हैं)। फिर उस बिंदु पर जाएं जहां आप पेस्ट करना चाहते हैं, और टाइप करें p

विम कमांड चीट शीट


क्या आप सुनिश्चित हैं कि आपका मतलब vयह नहीं है m?
बिली ओनली

@Billyoneal 'v' विज़ुअल मोड शुरू करता है, और आपको वही काम करने की अनुमति देता है, 'm' का उपयोग किसी क्षेत्र को "चिह्नित" करने के लिए किया जाता है।
निफले

6

आप एक संख्या के साथ कमांड को उपसर्ग करते हैं ताकि कितनी लाइनें चल सकें। आप एक 'टेक्स्ट-ऑब्जेक्ट' (जैसे ब्लॉक के लिए ']' और 'पैरा' के लिए भी इस्तेमाल कर सकते हैं) - यह कई लाइनों पर प्रासंगिक रूप से काम करेगा - डिफ़ॉल्ट अक्सर एक ही लाइन होती है। उदाहरण के लिए, "r5yyकर्सर को 'r' रजिस्टर में शुरू करने वाली पाँच लाइनें होंगी। (या आप :.,+4y rपूर्व मोड में ऐसा करने के लिए टाइप कर सकते हैं।) आप पाठ-वस्तुओं के साथ-साथ संख्याओं को भी जोड़ सकते हैं; "r10y)


1

जब यह अंतिम खोज घटना होती है तो कई लाइनों को छोड़ना संभव है।

उदाहरण के लिए निम्न बहु-गैर-लालची पैटर्न दिया गया है :

/start\_.\{-}end/norm gn"iy

तो आप अपने yanked बहु पैटर्न (के बीच होगा startऔर end) अपने में @iरजिस्टर (द्वारा प्रिंट echo @i)।

संबंधित: मल्टी-लाइन मैच कैसे प्रिंट करें? Vi पर

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