क्षैतिज स्क्रॉलिंग को अक्षम कैसे करें?


37

मैं बफर में कुछ छुपा पात्रों है और क्षैतिज स्क्रॉल संरेखण बड़े समय मारता है।

क्या कोई तरीका है कि इसे कैसे निष्क्रिय किया जाए? मुझे कोई प्रासंगिक विकल्प नहीं मिला।

खराब क्षैतिज स्क्रॉल डेमो

संपादित करें: डेमो जोड़ा गया। आप फ़ाइल के असंबद्ध भाग पर स्क्रॉल ऑफ़्स को विम बेस देख सकते हैं, इसलिए एलीगमेंट टूट जाता है।


6
आप इसे निष्क्रिय कर सकते हैं नहीं है, लेकिन आप कर सकते हैं:set wrap
EvergreenTree

8
@ ईएनयूयू, मेरा मतलब है कि लाइनें वास्तव में खिड़की की चौड़ाई से अधिक लंबी हैं, लेकिन कुछ पाठ (बैश-जैसे रंग कोड) छुपाए जाते हैं। तो, विम को लगता है कि यह पहले से ही खिड़की के किनारे तक पहुंच गया है, लेकिन नेत्रहीन यह नहीं हुआ है। मैं कहूंगा कि यह एक बग के रूप में योग्य है।
tommcdo

8
@tommcdo हां, मैं समझता हूं कि आपका क्या मतलब है। रैपिंग लाइनों के साथ एक अपरिचित मुद्दा है जब केवल रेखा के अंत में छिपे हुए भाग ही रैपिंग का कारण होते हैं और इसे ब्रैम से WONTFIX मिला: code.google.com/p/vim/issues/detail?id=260
Enuy

3
इसलिए मैं एक वैकल्पिक समाधान खोज रहा हूं - पूरी तरह से क्षैतिज स्क्रॉलिंग को अक्षम करने के लिए।
एन्यूय

3
निकटतम मैं सोच सकता हूं कि क्या आप एक टर्मिनल में हैं, तो आप टर्मिनल <c-s>को निलंबित करने के लिए उपयोग कर सकते हैं ताकि स्क्रीन अपडेट न हो। आप फिर नेत्रहीन बदलाव कर सकते हैं और लाइन की शुरुआत में वापस जा सकते हैं और <c-q>फिर से शुरू करने के लिए हिट कर सकते हैं। अन्य शायद-न-उपयोगी विकल्प: सुनिश्चित करें कि समान संख्या में छिपे हुए चरित्र हर दृश्य चरित्र के बीच हैं या खिड़की को चौड़ा करते हैं।
मैट बोहम

जवाबों:


2

क्षैतिज स्क्रॉलिंग को अक्षम कैसे करें

मैंने एक समाधान लिखा है जो क्षैतिज स्क्रॉलिंग को निष्क्रिय करता है, ( @ ророславРахматуллин के सुझाव को रोककर ), लेकिन मुझे नहीं लगता कि आप इसे पसंद करने जा रहे हैं:

augroup NoScrollPlease
  autocmd!
  autocmd CursorMoved * norm!99zH
augroup END

यह सिर्फ फिर से वापस स्क्रॉल करने की अविश्वसनीय रूप से सटीक विधि द्वारा दाईं ओर स्क्रॉल करने से रोकता है। *

* क्योंकि मैं नहीं जानता कि आपने कितनी दूर तक दाईं ओर स्क्रॉल किया है या आपकी लाइनें कितनी लंबी हैं, मैं 99 "स्क्रीन" चौड़ाई की मनमानी "दूर" राशि को स्क्रॉल कर रहा हूं। ध्यान दें कि मैं यह जांचने के लिए परेशान नहीं हूं कि आपने वास्तव में बाईं ओर "वापस" स्क्रॉल करने से पहले दाईं ओर स्क्रॉल किया है या नहीं। आप वास्तव में इस समाधान का उपयोग करना चाहते हैं तो आप के मूल्यों की तुलना द्वारा कुछ दस्तक करना चाह सकते हैं getcurpos(), 'sidescroll'और 'columns'

आप ऐसा क्यों नहीं करना चाहते हैं

कारण यह है कि आप इसका उपयोग नहीं करने जा रहे हैं कि स्क्रॉलिंग समस्या अंतर्निहित एक और मुद्दा है: विम आपको कर्सर को "ऑफ स्क्रीन" स्थानांतरित नहीं करने देगा। इसलिए, यदि आप बाईं ओर स्क्रॉल इस तरह से करते हैं कि स्क्रॉल के बाद कर्सर स्क्रीन से बाहर हो जाएगा, तो विम सहायक कर्सर को अपने साथ लाता है और इसे बाईं ओर ले जाता है।

लेकिन क्योंकि यह गणना है कि स्क्रीन पर कर्सर का उपयोग किया जा रहा है या नहीं, यह वही है जो यह तय करने के लिए उपयोग कर रहा है कि मूल समस्या में स्क्रॉल करना है या नहीं, शुद्ध प्रभाव यह है कि इस "समाधान" के साथ, यदि आप स्थानांतरित करने का प्रयास करते हैं ऐसी स्थिति में दाएं तरफ कर्सर जो सामान्य रूप से बग़ल में स्क्रॉल करने का कारण होगा, अब कर्सर बिल्कुल भी स्थानांतरित करने से इनकार करता है। **

** वर्तमान स्थिति और चाल के आधार पर, थोड़ा और अधिक सटीक होने के लिए, कर्सर सही दिशा में आगे बढ़ सकता है; यह सिर्फ उस स्थिति को पार नहीं करेगा जहां एक स्क्रॉल सामान्य रूप से होगा।

अन्य विकल्प?

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

जैसा कि आप पहले ही नोट कर चुके हैं , यह जल्द ही किसी भी समय तक पहुंचने की संभावना नहीं है, इसलिए मुझे आपके जीआईएफ में दिखाए गए मुद्दे के विशिष्ट उदाहरण के लिए वर्कअराउंड के लिए आपकी सबसे अच्छी शर्त से डर लगता है कि प्लगइन लेखक को concealपूरी तरह से और इसके बजाय उपयोग को रोकने के लिए याचिका करना है पूरी तरह से बफर से छिपे हुए पाठ को हटा दें।

साफ़ उत्पादन और का उल्लेख के आधार पर vim-plugin-AnsiEscमें प्रलेखन इस सकता है कुछ उन्हें लागू करने के लिए यह संभव है, लेकिन यह कैसे प्लगइन कार्यों के ज्ञान के बिना निश्चित रूप से कह मुश्किल है।


0

आप संपादित करने के लिए एक तरह से फ़ाइल है, तो आप के साथ रंग सेटअप रैप करने के लिए चाहते हो सकता है \[और \], के रूप में प्रति समझाया यहाँ :

[...] जो किया गया है वह '[0' [और '] में पीले रंग को शुरू करने वाले' 033 [1; 33 मीटर 'को घेरने के लिए है, जो शेल को बताता है कि "इन भागे हुए चौकोर कोष्ठकों के बीच सब कुछ, जिसमें स्वयं कोष्ठक भी शामिल हैं," गैर-मुद्रण वर्ण है [...]

अन्यथा, पूरे रंग कोड को वर्ण के रूप में माना जाता है, और इसलिए क्षैतिज स्क्रॉल के लिए इसे ध्यान में रखा जा सकता है।

मुझे यकीन नहीं है कि यह मुद्दा है, लेकिन कैलेंडर के स्रोत ( syntax offवर्तमान) और वर्तमान व्यवहार को देखते हुए, इसने मुझे इसके बारे में सोचा।


समस्या रंग नहीं है, लेकिन इसके बजाय विशेषता द्वारा छिपे हुए चरित्र conceal(टिप्पणियों में चर्चा देखें)।
रिच

हाँ मैं समझता हूँ। हो सकता है कि कुछ ऐसा है जिसे मैंने अच्छी तरह से समझा नहीं था, लेकिन मुझे PS1 के साथ रंग पात्रों का उपयोग करने के मामले में एक समान मुद्दा था (तथ्य यह है कि वे रंग मायने नहीं रखते हैं), और टर्मिनल अच्छी तरह से एक नई लाइन में वापस नहीं आ रहा था जगह, क्योंकि यह रंगों के लिए वर्णों को प्रभावी पात्रों के रूप में गिना रहा था, जबकि उन्हें अनदेखा किया जाना था, क्योंकि वे अदृश्य हैं। एनीमेशन ने मुझे इस मुद्दे की याद दिला दी (जहां क्षैतिज पृष्ठांकन "बहुत जल्द" किया जाता है, जैसे कि यह लाइन में वर्णों की संख्या के आधार पर करता है, जो कि मेरे उत्तर में लिंक में उल्लिखित है)।
पैडविन

दो समस्याएं समान हैं, मैं सहमत हूं। लेकिन इस प्रश्न में वर्णित व्यवहार इसलिए होता है क्योंकि Vim वर्ण (टर्मिनल नहीं) को गिनता है और इसलिए आपके पहले पैराग्राफ में आपके द्वारा सुझाया गया सुझाव यहां मदद नहीं करेगा, मुझे डर है।
रिच

0

संपादित करें: यह एक ज्ञात बग है, बंद "ठीक नहीं होगा": https://github.com/vim/vim/issues/260

मूल उत्तर:

मेरा विम क्षैतिज रूप से स्क्रॉल नहीं करता है जब तक कि कर्सर स्क्रीन के किनारे को हिट नहीं करता है।

क्या आप उपयोग कर रहे हैं sidescrolloff?

मुझे पूरी तरह से क्षैतिज स्क्रॉलिंग को अक्षम करने के बारे में नहीं पता है, लेकिन इस सेटिंग को तब तक इंतजार करना चाहिए जब तक कि कर्सर किनारे से नहीं जाता है:

:set sidescrolloff=0

समस्या भी साथ मौजूद है 'sidescrolloff=0'क्योंकि विम का मानना है कि कर्सर है किनारे से दूर चला गया: यह साफ़ पाठ, नहीं दिखाई दे रहे पाठ पर इसकी गणना आधार बनाता है।
रिच

ओह, यह वास्तव में छोटी गाड़ी है। मुझे इस बारे में एक बग रिपोर्ट मिली और इसे अपने उत्तर में जोड़ा। विम अनुचर इसे ठीक नहीं करना चाहता है।
जेसनवॉफ

इस बग पर कोई ठीक नहीं है ... लेकिन हो सकता है कि आप अपने कैलेंडर को बफर और prop_type_add () और prop_add () रंगों / आदि के लिए सादे पाठ के साथ लागू कर सकें।
जेसनवॉफ

हाँ, यह एक उबाऊ है, लेकिन उस बग रिपोर्ट ओपी ने इस सवाल को एक वर्कअराउंड की तलाश के कारण लिखा है !
रिच
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.