विम में putting टेक्स्ट करते समय मुझे परेशानी हो रही है।

मान लीजिए कि मैं अपनी /* Comment */ लाइन को $('table').append लाइन के नीचे चिपकाना चाहता हूं...

/* Comment */

for (var i=1; i<=lineLength ; i++) {
    $('table').append('<tr></tr>');
    for (var j=1; j<=lineLength; j++) {
    $('table tr:nth-last-child(1)').append('<td></td>');
    }
}

अधिकांश पाठ संपादकों में, मेरा कार्यप्रवाह होगा

  1. /* Comment */ चुनें, कट हिट करें।
  2. कोड की पहली पंक्ति के अंत में कर्सर ले जाएँ और रिटर्न हिट करें।
  3. टेक्स्ट एडिटर ऑटो-इंडेंट, और मैंने अभी पेस्ट मारा।

अर्थात।

/* Comment */

for (var i=1; i<=lineLength ; i++) {
    $('table').append('<tr></tr>');
    | <==Pipe is position of cursor before paste; pasted lines are inserted here.
    for (var j=1; j<=lineLength; j++) {
    $('table tr:nth-last-child(1)').append('<td></td>');
    }
}

लेकिन विम के साथ, ऐसा लगता है कि मुझे यह करना है:

  1. /* Comment */ लाइन पर जाएं, dd दबाएं।
  2. $('table').append लाइन पर जाएं, p दबाएं।

नया कोड:

for (var i=1; i<=lineLength ; i++) {
        $('table').append('<tr></tr>');
/* Comment */. <== Comment is not correctly indented.
        for (var j=1; j<=lineLength; j++) {
        $('table tr:nth-last-child(1)').append('<td></td>');
        }
    }
  1. गलत इंडेंट किए गए कोड को मैन्युअल रूप से ठीक करें।

विम ऑटो-इंडेंट ठीक है जब मैं o के साथ एक नई लाइन शुरू करता हूं, तो ऐसा लगता है कि इसे putting को एक नई लाइन पर भी संभालना चाहिए .... क्या कोई आदेश है जो मुझे put सही इंडेंटेशन के साथ कोड की नई लाइनें?

0
achalk 14 मार्च 2017, 00:44

3 जवाब

सबसे बढ़िया उत्तर
:nnoremap p p`[v`]=

https://github.com/sickill/vim-pasta से लिया गया है।

2
Asky McAskface 14 मार्च 2017, 01:05
1
:nnoremap p p`[v`]= के बारे में क्या? github.com/sickill/vim-pasta से। या आप उस प्लगइन को आजमा सकते हैं।
 – 
Asky McAskface
14 मार्च 2017, 01:01
वह कोड काम करता प्रतीत होता है, धन्यवाद। मैं इसे कुछ अलग प्रारूपों में परीक्षण करूँगा ....
 – 
achalk
14 मार्च 2017, 01:04

आप मौजूदा लाइन के इंडेंट स्तर पर पेस्ट करने के लिए ]p और [p का उपयोग कर सकते हैं। ध्यान दें कि यह केवल तभी काम करता है जब रजिस्टर की सामग्री लाइन-वार हो। देखें :h ]p

यदि आप ]p और दोस्तों का उपयोग करना चाहते हैं, लेकिन हमेशा चाहते हैं कि यह लाइन के अनुसार हो तो मेरा सुझाव है कि आप टिम पोप के unimpaired.vim प्लगइन। यह >p/ मैपिंग भी प्रदान करता है जो एक इंडेंट स्तर को गहरा/उथला, साथ ही =p/=P पेस्ट करता है जो चिपकाता है और फिर p='] के समान पुन: इंडेंट करता है।

3
Peter Rincker 14 मार्च 2017, 02:38

:nnoremap p p='] अन्य उत्तरों की तरह ही करता है लेकिन कम कीस्ट्रोक्स करता है। नेत्रहीन चयन करने की आवश्यकता नहीं है।

0
Fonnae 28 जून 2021, 23:54