बिना कर्सर को हिलाए किसी विशेष रेखा को कैसे घुमाएं?


39

उदाहरण के लिए

वैकल्पिक शब्द

मैं कर्सर को लाइन 4 पर जाने के बिना लाइन 4 से केवल 12 तक कैसे यैंक और पेस्ट कर सकता हूं ?

वैकल्पिक शब्द


मैंने इस तथ्य पर आपके प्रश्न का उत्तर दिया कि "मुझे यैंक!" ऑन लाइन 4 है। आपके 2 वें स्क्रीनशॉट में, यह लाइन 5.
लुई सालिन

उत्तर के लिए @Louis धन्यवाद। मैंने स्क्रीनशॉट को अपडेट कर दिया है।
लेज़र

जवाबों:


51

यदि कर्सर पहले से ही लाइन 12 पर है, तो एक सरल

: 4y
पी

मेरे लिए करता है।


1
अच्छा! वहाँ के लिए एक बराबर है x? जब मैं कोशिश करता :4xहूं मुझे मिलता है E140: Use ! to write partial buffer। धन्यवाद!
dotancohen

मेरा कहना है कि यह आश्चर्यजनक है: D
nXqd

@dotancohen:4d
n.st

क्या रिश्तेदार लाइन नंबर के साथ ऐसा करने का एक अच्छा तरीका है?
TrungDQ

सापेक्ष संख्याओं के साथ बस + और - का उपयोग करें। तो -4 कर्सर के ऊपर चार पंक्तियाँ हैं और +4 इसके नीचे चार पंक्तियाँ हैं।
रिकेटेफ़ॉक्स

10

यह कैसे होता है: कर्सर 11 पंक्ति पर है, आप "vi" मोड में हैं।

:4co.<return>

आप इसे स्पष्ट रूप से एक पैटर्न के साथ भी कर सकते हैं:

:/^Yank/co.<return>

आप केवल "लाइन" (कॉपी) के बजाय "मो" (चाल) का उपयोग कर सकते हैं, बस लाइन को स्थानांतरित करने के लिए, यैंक और पुट के बजाय।


1
इससे भी कम ( t एक प्रतिलिपि कमांड के रूप में ed से एक बाएं ओर है)::4t.
tarleb


8

प्रयत्न:

:4co11

आप 0लाइन में पेस्ट करने के लिए एक तर्क का उपयोग कर सकते हैं 1। यह रेंज के साथ भी काम करेगा:

:m,n co k

लाइन के mमाध्यम nसे लाइनों की नकल करेंगे k+1। इसके अलावा यह कोई फर्क नहीं पड़ता कि आप बफर में कहां हैं। moveआदेश, mइसी तरह काम करता है।


2

यह करना चाहिए:

:4,12y
p
k

1
नहीं, वह यान संख्या 4 से 12 तक है
लेज़र

मेरा मतलब था कॉपी और पेस्ट लाइन ४, लाइन १२ तक।
Lazer

संपादित। क्या आप यही चाहते थे?
उमंग

2

दूसरों ने ऐसा करने का सबसे प्रत्यक्ष तरीका पहले ही उल्लेख कर दिया है, जो है :4y, लेकिन मैं इसके बारे में दो नोट्स जोड़ना चाहता हूं जो उपयोगी हो सकते हैं:

एक, यदि आप टाइप :help rangeकरते हैं तो एक्स शैली कमांड पर लागू करने के लिए रेंज का उपयोग करने के बारे में सभी सीखेंगे। बहुत से मामलों में उपयोगी है, और लाइन नंबर का उपयोग करने की तुलना में कहीं अधिक बहुमुखी है। उदाहरण के लिए, दस्तावेज़ (भले ही वह पहली पंक्ति पर है), उपयोग की शुरुआत के बाद "झटका" के साथ शुरू करता है, तो आप पहली पंक्ति झटका करना चाहते हैं :0/^yank/y। पर्वतमाला का सबसे शक्तिशाली हिस्सा उन्हें संयोजित करने की क्षमता है, उदाहरण के लिए, :./^Chapter/+50?Pete?d"अध्याय शब्द के साथ शुरू करने के लिए अगली पंक्ति ढूंढें (वर्तमान लाइन से आगे की खोज करें), फिर आगे 50 रेखाएं कूदें, और शब्द पीट के लिए पीछे की ओर खोजें, और पहली पंक्ति हटाएं जो आपको इसमें मिली हो। " सिवाय इसके कि यह वास्तव में कर्सर को स्थानांतरित नहीं करता है, यह सिर्फ वही बताता है जो आप इसे बताते हैं।

(मैंने इस प्रकार की श्रेणी विनिर्देशन का उपयोग कर्सर के नीचे फ़ंक्शन नाम को खोजने के लिए फ़िडली दस्तावेज़ निर्माण को स्वचालित करने के लिए किया है, फिर अगली पंक्ति के लिए आगे की खोज की जिसमें "विवरण" कहा गया है और इसे एक विशिष्ट रजिस्टर ... इत्यादि के लिए yanking किया गया है।

अन्य टिप, यह है कि आपको कूदने के बारे में पता होना चाहिए। :help jump-motionsइसके बारे में पूरी तरह से जानने के लिए टाइप करें, लेकिन जिस तरह से इसका संबंध यहाँ है कि आप लाइन 4 पर जा सकते हैं, इसे हिला सकते हैं और फिर RETURN के साथ 4Gyy''(या apostrophes के बजाय backticks का उपयोग करके अपनी सटीक शुरुआती स्थिति में वापस जाने के लिए, केवल उसी LINE के बजाय कूद सकते हैं आपने शुरू किया।)


2

कम से कम:

:1t. वर्तमान के नीचे पहली पंक्ति की प्रतिलिपि बनाता है।

सीमाओं के साथ: :1,4t.प्रतियां वर्तमान के नीचे 1 से 4 (समावेशी) की रेखा होती हैं।

रिश्तेदार लाइन संख्या के साथ भी संभव है:

:-1t. वर्तमान के नीचे पिछली पंक्ति को कॉपी करता है।

आपके उदाहरण :4t-1में वांछित लाइन के नीचे चौथी पंक्ति की प्रतिलिपि होगी।

नोट: कमांड :tका एक पर्याय है :co[py]

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