vi / खिड़की के भीतर बफर आंदोलनों को हटा दें


11

जब :set wrapvi / vim का उपयोग करते हैं, तो पूरी लिपटे लाइन की सामग्री को कर्सर को एक नई लाइन में ले जाने पर डिस्प्ले बफर में रखा जाता है, तब भी जब वास्तविक लाइन के विपरीत डिस्प्ले लाइन (gj / gk) द्वारा फाइल के माध्यम से नेविगेट करते हुए (j) /क)। उदाहरण के लिए, यदि कोई रेखा 5 स्क्रीन लाइनों पर लिपटी हुई है और वर्तमान में डिस्प्ले बफर के बाहर है, तो स्क्रीन पर फिट होने के लिए पूरी लाइन को मजबूर करने के लिए इस लाइन में नेविगेट करने पर बफर 5 लाइनों से कूद जाएगा। क्या इस व्यवहार को अक्षम करने का कोई तरीका है? ध्यान दें कि set display+=lastlineजब एक लिपटे लाइन को लाइन से दूर नेविगेट करके स्क्रीन को बंद करने के लिए मजबूर किया जाता है, तो आंशिक लाइनों के प्रदर्शन की अनुमति देगा, लेकिन यह बफर जंप को हल नहीं करता है जो उस लाइन में नेविगेट करते समय होता है जो शुरू में बफर के बाहर था।

स्पष्टता: यदि उपरोक्त विवरण अस्पष्ट है, तो समझ में आता है कि मैं लाइन रैपिंग के साथ आसानी से स्क्रॉल करने में सक्षम होना चाहूंगा जैसे कि लाइनें आंशिक रूप से स्क्रीन पर प्रदर्शित होंगी बजाय कि उनके संपूर्ण रूप में प्रदर्शित होने के।


1
क्या आप इस बात की पुष्टि कर सकते हैं कि आपका क्या मतलब है: आप लाइन के लिपटे हुए हिस्से का हिस्सा ऑफ-डिस्प्ले होना चाहते हैं और आसानी से स्क्रॉल कर सकते हैं? विम पूरी तरह से लाइनों को दिखाता है जब 'wrap'मुझे डर लगता है
बेनोइट

यकीनन। मैं इसे ले जाता हूं स्क्रॉल करते समय लिपटे हुए रेखाओं को दिखाने के इस व्यवहार को ओवरराइड करने का कोई तरीका नहीं है? धन्यवाद।
user001

1
वो नहीं जो मैं जानता हूँ। जवाब के लिए प्रतीक्षा करें, कोई नहीं जानता कि विम क्या कर सकता है।
बेनोइट

1
@Benoit से सहमत हैं। जहाँ तक मुझे पता है संभव नहीं है।
फ्रेड्रिक पिहल

1
वर्तमान में इस विषय पर vim_dev मेलिंग सूची पर चर्चा चल रही है। ऐसा लगता है कि आप केवल इस अनुरोध के साथ नहीं हैं।
रैंडी मॉरिस

जवाबों:


1

पूरा जवाब नहीं, लेकिन शायद एक लीड। वहाँ scrollविकल्प है। उस विकल्प के लिए सहायता अन्य बातों के अलावा पढ़ती है:

{Vi थोड़ा अलग है: 'स्क्रॉल' फाइल लाइनों के बजाय स्क्रीन लाइनों की संख्या देता है, लाइनों को लपेटने पर फर्क पड़ता है}


धन्यवाद, यह मददगार है। <Ctrl-E> (नीचे) और <Ctrl-Y> (ऊपर) कुंजी संयोजन मूल व्यवहार देते हैं जो मुझे चाहिए। यदि यह पता लगाने का कोई तरीका है कि कर्सर विंडो के ऊपर या नीचे की रेखा पर है, तो एक अस्थायी समाधान में सशर्त रूप से अप और डाउन एरो कीज़ को <Ctrl-Y> gk और <Ctrl-E> gj में शामिल करना होगा, क्रमशः। जब कर्सर खिड़की के ऊपर या नीचे की रेखा पर नहीं होता है, तो उन्हें gk और gj पर मैप करना आवश्यक होता है (सशर्त में अन्य कथन)। क्या यह पता लगाने का एक सरल तरीका है कि कर्सर वर्तमान विंडो के ऊपर या नीचे की रेखा पर है या नहीं?
user001

0

सामान्य मोड में, आप का उपयोग करके एक लिपटे लाइन के प्रदर्शित किया भागों के बीच जा सकते gkऔर gj( g<up>या g<down>)। यह vim wipipage बताता है कि व्यवहार को स्थायी रूप से कैसे बदलना है।


1
निश्चित रूप से, और मैंने उन व्यवहारों को दिशात्मक तीर कुंजी के लिए मैप किया है। हालांकि, यह उस लाइन पर नेविगेट करने पर एक लिपटे लाइन की संपूर्णता के अनिवार्य प्रदर्शन से अलग है। यह व्यवहार gj / gk या j / k के उपयोग से स्वतंत्र है। मैं एक लाइन में आंशिक रूप से नेविगेट करने में सक्षम होना चाहता हूं जो शुरू में बफर से बाहर है (स्क्रीन के बाहर) पूरे लिपटे लाइन के बिना प्रदर्शित किया जा रहा है।
user001

ठीक है, फिर मैंने गलत समझा। खैर, मुझे लगता है कि आपकी लाइन या तो लपेटी हुई है, या यह नहीं है। आप जो चाहते हैं वह बीच में कुछ है, लेकिन मुझे लगता है कि यह असंभव है।
jpjacobs
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.