साइड-बाय-साइड मोड में पूर्ण टर्मिनल चौड़ाई का उपयोग करें


40

अधिकांश एप्लिकेशन उनके लिए उपलब्ध टर्मिनल की पूरी चौड़ाई का उपयोग करने के बारे में स्मार्ट हैं। मेरा शेल, स्क्रीन, विम, आदि, हालांकि, diffसाइड-बाय-साइड मोड ( -y) में नहीं है। यह मुझे नाराज करता है। यह 126 चरित्र चौड़ाई का उपयोग करता है, जो मेरे 270 ब्लॉक चौड़ाई टर्मिनल का आधा भी नहीं है।

मैन पेज के माध्यम से देखने से स्वचालित रूप से चौड़ाई को समायोजित करने के बारे में कुछ भी विशेष रूप से प्रकट नहीं होता है, केवल मैन्युअल रूप से इसे निर्दिष्ट करने के माध्यम से -W

क्या diffटर्मिनल की पूरी चौड़ाई में इसे स्वचालित रूप से विस्तारित करने की अनुमति देने के लिए "छिपी हुई विशेषता" है ? या; -W <terminalsize>जब भी मैं इसे चलाता हूं, तो मेरे अंतर कमांड में स्वचालित रूप से डालने का सबसे आसान तरीका क्या है ?

मैं इस धारणा के अधीन हूं कि स्वचालित रूप से सब-कुछ के साथ-साथ कुछ भी चोट नहीं पहुंचा सकता है, क्योंकि इसका मतलब केवल "$ x कॉलम का उपयोग करना" होगा, जो कि हमेशा मैं चाहता हूं, चाहे मैं साइड-बाय-साइड मोड में हूं; या अन्यथा।

जवाबों:


51
$ alias diff='diff -W $(( $(tput cols) - 2 ))'

करना चाहिए था। आप इसे ~ / .bashrc पर भी जोड़ना चाहेंगे।

- 2मुख्य रूप से मामला कुछ में व्यामोह है, लाइन चादर बनाने के लिए पर्याप्त फैलता (एम्बेडेड यूनिकोड में दोगुने-चौड़े?); यदि आप चाहें, तो आप उपयोग कर सकते हैं

$ alias diff='diff -W $(tput cols)'

मैंने $ COLUMNS को नोटिस करना शुरू किया और उसी तर्ज पर कुछ सोच रहा था। उपनाम अलग = "वि-डब्लू $ {COLUMNS}"। मुझे लगता है कि मैं पर्यावरण पर भरोसा करने के बजाय शेल से पूछना पसंद करूंगा।
VxJasonxV

1
tputउन लोगों में से पहले का उपयोग करके, और टर्मिनल विवरण पर विचार करता है $COLUMNS, stty -aजिसका एक सार्थक मूल्य है। eval $(resize)उन्हें टर्मिनल के आकार के बारे में सोचने के लिए इस्तेमाल करने के लिए मजबूर किया जा सकता है।
गीकॉर्पर्स

ध्यान दें कि यदि आपके पास गैरमानक टैबस्टॉप्स हैं (जैसे tabs 2आपके .bashrc में) तो आपको -t फ्लैग का उपयोग करने की आवश्यकता होगी या अलग-अलग बहुत ही विचित्र आउटपुट का उत्पादन करने की आवश्यकता होगी
Jeff
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.