2009-10-16 9 views
32

मैं विम में टेक्स्ट खोलना चाहता हूं। जब मैं लाइनों में शामिल होता हूं तो मुझे वाक्य के बीच एक अतिरिक्त जगह मिलती है।विम लाइनों में शामिल होने पर रिक्त स्थान क्यों जोड़ता है?

वह क्यों है?

+2

कोई मजाक नहीं। मदद मिली धन्यवाद। – binOr

उत्तर

28

स्वरूपण जानकारी को नष्ट कर देता है। टेक्स्ट के कई अलग-अलग ब्लॉक हैं जिनके परिणामस्वरूप एक बार स्वरूपित किया जाएगा। इसलिए, पूर्व ज्ञान के बिना ऑपरेशन को उलट करने का कोई तरीका नहीं है (यानी पूर्ववत करें)।

अस्वरूपित:

Unformatted text could start out as either all one line, or several, yet look the same when formatted. 

Unformatted text could start out as either all one line, or several, 
yet look the same when formatted. 

प्रारूपित:

Unformatted text could start out as 
either all one line, or several, 
yet look the same when formatted. 

आप एक पंक्ति में अपने पैरा चाहते सभी, या यदि आप एक छोटे से मार्गदर्शन नगण्य साथ ठीक कर रहे हैं, आप में शामिल करना J उपयोग कर सकते हैं एक साथ वापस लाइनें। आप एक पैराग्राफ का चयन करने के लिए ap या ip के साथ संयुक्त रूप से J कमांड को कई पंक्तियों पर लागू करने के लिए दृश्य मोड का उपयोग कर सकते हैं, उदा। vipJ। दोबारा, आप अभी भी कुछ जानकारी खो देंगे - फॉर्मेटिंग से पहले लाइन ब्रेक पर कई रिक्त स्थान एकल रिक्त स्थान पर गिर जाएंगे। (आप J के बजाय gJ का उपयोग करके रिक्त स्थान को संशोधित किए बिना वास्तव में शामिल हो सकते हैं, लेकिन जब आप स्वरूपित करते हैं तो आप उन्हें पहले से ही खो देंगे)

यदि आप वाक्यों के बाद अतिरिक्त रिक्त स्थान से परेशान हैं (लाइनें समाप्त हो रही हैं !,? । या), joinspaces बंद कर दें: set nojoinspaces

+0

बहुत बहुत धन्यवाद। मैंने पहले से ही लाइनों में शामिल होने का प्रयास किया है, लेकिन मुझे परेशान करता है कि अचानक लाइनों में शामिल होने के बाद वाक्यों के बीच कई रिक्त स्थान होते हैं। – binOr

+3

फिर आपके प्रश्न का उत्तर बस जॉसस्पेस को अनसेट करने के लिए है: ': nojoinspaces सेट करें – Cascabel

+0

सबसे निश्चित रूप से, धन्यवाद! वाक्य की बात के बाद मैं इस 2 रिक्त स्थान से अपरिचित था। – binOr

54

मुझे लगता है यह है कि क्या तुम सच में चाहते हैं: जी जे

:h gJ से:

gJ   Join [count] lines, with a minimum of two lines. 
      Don't insert or remove any spaces. {not in Vi} 

यह आसान है अगर आपने टर्मिनल से कुछ कॉपी किया है और इसे एक सिंगल लाइन की बजाय विम में एक बड़े आयताकार ब्लॉक के रूप में चिपकाया गया है।

मैं आमतौर पर इसे दृश्य मोड में उपयोग करता हूं। हिलाइट सामान, जीजे

+4

यह सही उत्तर है। स्वीकृत उत्तर मेरे लिए काम नहीं करता था। – Jonah

+1

वही। Nojoinspaces का कोई प्रभाव नहीं पड़ा। मुझे प्रत्येक स्थान को हटाने के लिए जेएक्स मैक्रो करना पड़ा। –

6

This वह उत्तर है जो मेरे लिए काम कर रहा है, उपरोक्त में से कोई भी मेरे उपयोग मामले में काम नहीं करता है।

अनिवार्य रूप से, जीजे का उपयोग कई अन्य लोगों की तरह करते हैं, लेकिन सभी फाइलों को हाइलाइट करते हैं, इसलिए कमांड मोड टाइपिंग ggVGgJ में।

:j! 
! में शामिल होने के किसी भी रिक्त स्थान डालने या नहीं हटाता है साथ

:

4

मैं बिना किसी स्पेस लाइनों में शामिल होने का है के बीच सरल उपाय लगता है। पूरी फ़ाइल के लिए, :%j! का उपयोग करें।

देखें: :help :join

1

मुझे अभी भी अतिरिक्त स्थान मिला है, अगर हम जिस लाइन पर काम करते हैं वह अंतरिक्ष के साथ समाप्त नहीं होता है। आमतौर पर यह वांछित व्यवहार है।उदाहरण

first line without space 
second line 

J साथ शामिल होने के बाद,

first line without space second line 

बन कुछ मामले में, हम इसे लागू करने की इच्छा नहीं है,

myInstance->methodA() 
      ->methodB() 

और हम चाहते हैं कि myInstance->methodA()->methodB() बनने के लिए शामिल हो बीच में किसी भी जगह के बिना!

यहाँ सहायकों मानचित्रण मैं

nmap <leader>jj Jx 

< नेता > कुंजी \ मेरा मानना ​​है प्रमुख को :let mapleader, डिफ़ॉल्ट के साथ जाँच की जा सकती उपयोग करें।

सामान्य मोड में, बस \jj बिना किसी अतिरिक्त स्थान के शामिल होने के लिए!

संबंधित मुद्दे