2017-05-22 15 views
5

यहां प्रारंभिक पाठ है।संपादित टेक्स्ट में निर्दिष्ट पंक्ति में स्ट्रिंग अनुक्रम कैसे बनाएं?

test1 
test2 

टेक्स्ट में केवल दो पंक्तियां।

मैं स्ट्रिंग अनुक्रम को 5 वीं पंक्ति से 16 वीं पंक्ति में सम्मिलित करना चाहता हूं। मैंने इसे नीचे दिए गए कोड के साथ आजमाया है।

for i in range(1,12) 
    echo ".item".i."," 
endfor 

1. प्रारंभिक पाठ।
enter image description here 2.to आदेश मोड और इनपुट में कोड

enter image description here

दो समस्याओं को हल किया जा करने के लिए दर्ज करें।
1.echo कमांड पहले स्ट्रिंग .item1 अंत से पहले उत्पादन करता है।

for i in range(1,12) 
    echo ".item".i."," 

2.How तार निर्दिष्ट लाइन में अनुक्रम बनाने के लिए: vimscript के साथ संपादित पाठ में 16 वीं तक 5 वीं से?

वांछित परिणाम नीचे जैसा है।

enter image description here

लगभग संपन्न!
क्या मैं प्राप्त आदेश :pu! =map(range(1,12), 'printf(''item%1d'', v:val)') साथ नीचे के रूप में है।

उनमें से दोनों काम नहीं कर सकते हैं।

:5pu! =map(range(1,12), 'printf(''item%1d'', v:val)') 
:5,16pu! =map(range(1,12), 'printf(''item%1d'', v:val)') 

enter image description here

पिछले मुद्दा मेरी वांछित प्रारूप के लिए जब कर्सर 3th लाइन पर है, कैसे वांछित आउटपुट बनाने के लिए है?

+2

आप इस 'पु की तरह कुछ मतलब क्या! = मानचित्र (रेंज (1,16), 'printf (' 'item% 1d' ', v: val)') '? यदि नहीं, तो आपको वांछित आउटपुट दिखाना चाहिए।मुझे यह निर्धारित करने में परेशानी हो रही है कि आपको क्या चाहिए। –

उत्तर

4

आदेश पंक्ति छूटी, अनावश्यक खाली लाइनों डालने के बिना सम्मिलित करने के लिए - आप के लिए (कोई जरूरत क्या खोज रहे हैं सम्मिलित करने के लिए,

:let lin = 5 - 1 
:call append('$', repeat([''], lin-line('$'))) 

तब (nb>append() + repeat([''], nb) + संभावित नकारात्मक) printf() के लिए आप संख्या को स्वरूपित करने)

:call append(lin, map(range(1,12), '"item".v:val')) 

पुनश्च नहीं करना चाहते हैं: मैं नहीं बल्कि :put से बचने था जब मैं यह कर सकते हैं यह एक तरह से मुश्किल है के रूप में जटिल भाव के साथ उपयोग करने के लिए।

1

मान लें कि आप यूनिक्स आधारित ऑपरेटिंग सिस्टम में हैं, आपके पास seq कमांड है। तो तुम कर सकते हैं:

$ seq -f 'Item %.0f' 20 
Item 1 
Item 2 
... 
Item 20 

vim अंदर आप कोशिश कर सकते हैं बाहरी आदेश से पढ़ने दृष्टिकोण:

:r! seq -f 'Item \%.0f' 20 
संबंधित मुद्दे