vi रिक्त पंक्ति जोड़ने के लिए आदेश?


24

Vi में, मैं एक रिक्त लाइन जोड़ने oया Oसम्मिलन मोड में जाने के लिए उपयोग कर सकता हूं । लेकिन क्या होगा अगर मैं कमांड मोड में रहना चाहता हूं, क्या इसके लिए कोई कमांड है?

Googling में, मैं अपने vimrc में सामान जोड़ने के लिए सुझाव देख रहा हूं, लेकिन ऐसा लगता है कि एक आसान तरीका होना चाहिए (जो हमेशा काम करेगा।)

जवाबों:


25

VIM FAQ के अनुसार आप :putकमांड का उपयोग कर सकते हैं :

12.15। मैं सम्मिलित मोड में प्रवेश किए बिना वर्तमान पंक्ति के ऊपर / नीचे एक रिक्त रेखा कैसे डालूं?

आप खाली लाइनों को डालने के लिए ": put" पूर्व कमांड का उपयोग कर सकते हैं। उदाहरण के लिए, प्रयास करें

: डाल = ''
: डाल! = ''

अधिक जानकारी के लिए, पढ़ें

: मदद: डाल दिया

लेकिन फिर वास्तव में इसे जोड़ना आसान है:

map <Enter> o<ESC>
map <S-Enter> O<ESC>

अपने को .vimrc। इस तरह आप भी दबा सकते हैं Enterया Shift-Enterमें normal modeनीचे या वर्तमान रेखा से ऊपर एक रिक्त पंक्ति सम्मिलित करने के लिए। बेशक स्थानापन्न <Enter>और <S-Enter>अपने पसंदीदा कुंजी के साथ।


15

उपयोग करने के आकर्षण का हिस्सा VIपाठ में हेरफेर करने के लिए एक कमांड मोड है, और पाठ जोड़ने के लिए एक संपादन मोड है। यह आपको CTRL हिट करने से रोकता है-जो भी चीजें पूरी करने के लिए।

अन्य सुझाव काम कर सकते हैं - मैंने उन्हें कोशिश नहीं की है - लेकिन उन्हें लगता है कि आपको कुछ पात्रों की आवश्यकता है या आपके VIवातावरण को बहुत अधिक हेरफेर करना चाहिए।

उपयोग करने का प्रयास o[ESC]एक के बाद .प्रत्येक नई लाइन आप जोड़ना चाहते हैं या चाहते हैं के लिए 5.5 लाइनों को जोड़ने के लिए। यह बहुत तेज़ है, और हमेशा किसी भी इंस्टॉल पर काम करेगा VI।


1
आप .दोहराने के लिए उपयोग कर सकते हैं , लेकिन आप यह भी कर सकते हैं <number>o<esc>, उदाहरण:5o<esc>
— बोलोवन

1
वह निश्चित रूप से काम करेगा। लेकिन मुझे यह देखना पसंद है कि मेरे द्वारा इसे कई बार करने से पहले कमांड वास्तव में दस्तावेज़ को कैसे प्रभावित करेगा। मैं आपको बता नहीं सकता कि मैंने o'dVI में एक नया पैराग्राफ कितनी बार जोड़ा है, केवल यह पता लगाने के लिए कि सुंदर पैराग्राफ वास्तव में छह ध्यान से टूटे हुए / शब्द-लिपिबद्ध लाइनें थीं।
— ग्लोरीटॉड


1

यह वर्तमान लाइन के बाद एक रिक्त रेखा जोड़ देगा:

:put _ 

वैकल्पिक रूप से, प्रारंभ में एक पंक्ति निर्दिष्ट करें।


0

Vim 7.3 पर: <number>o<esc>केवल एक खाली लाइन बनाता है।


खैर, <esc>आपको जोड़कर फिर से इन्सर्ट मोड से कमांड मोड में जाना है। मुझे लगता है कि वह एक ऐसे उत्तर की तलाश में है, जो बिल्कुल भी सम्मिलित न हो।
— बर्नहार्ड

ओह! मैं <esc> के साथ इन्सर्ट मोड को छोड़ना भूल जाता हूँ। इस मामले में, यह काम करेगा। यह निम्नलिखित सभी लाइनों पर संपादित लाइन की नक़ल भी करेगा।
— हकीम


0

कमांड मोड में रहने के दौरान करंट लाइन के बाद एक खाली लाइन डालने के लिए, उपयोग करें:

: r !echo

यह " rफ़ाइल में ead" कमांड है, लेकिन इसे फ़ाइल नाम देने के बजाय, हम इसे शेल कमांड के आउटपुट को पढ़ने के लिए कहते हैं ( !); वह शेल कमांड, echoबस एक खाली लाइन को प्रिंट करता है। रिक्त पंक्ति सम्मिलित होने के बाद, आप कमांड मोड में बने रहते हैं।


-2

मुझे आश्चर्य है कि किसी और ने इसका उल्लेख नहीं किया:

कमांड लाइन मोड में 'की' दर्ज करें।

पार्टी में 7 साल की देरी से हालांकि :)


1
सिवाय इसके कि यह आपको कमांड मोड से बाहर ले जाता है और वर्तमान रेखा को एक रिक्त स्थान से बदल देता है।
— जेफ स्कॉलर

मुझे यकीन नहीं है कि @ जेफ क्या कह रहा है। इस आदेश के बारे में मेरी टिप्पणियां हैं (1) यह काम नहीं करता है यदि आप वर्तमान में एक रिक्त रेखा पर हैं, और (2) अन्यथा, यह कर्सर के नीचे के चरित्र को हटा देता है।
— स्कॉट

मुझे याद आती है; rवास्तव में वर्तमान चरित्र को बदल देता है। फिर भी आपको कमांड मोड में ले जाता है।
— जेफ स्कालर

माना। यह एक सीमा है: यह लाइन से पहले एक खाली जगह पर एक गैर-खाली लाइन + पर किया जाना है। यह नहीं सोचा था। धन्यवाद।
— अखिलेश सिद्धान्ति
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.