टर्मिनल आयाम परिवर्तनों पर डायनामिक रूप से सुधार करने वाले मैन पेज


14

मेरा एक सामान्य वर्कफ़्लो एक टर्मिनल में एक मैनुअल पेज खोलना है, फिर दूसरा टर्मिनल जिसमें चीजों का परीक्षण करना है। मैन पेज को पहले टर्मिनल के शुरुआती आयामों में स्वरूपित किया गया है। जब मैं अब अपनी खिड़कियों का आकार बदल देता हूं (या मेरे WM को स्वचालित रूप से मेरे लिए करना है), तो या तो विकृत पृष्ठ के दाईं ओर एक खाई है, या लाइनें लपेटती हैं। इस बिंदु पर मैं आमतौर पर q(यूआईटी) और !!(फिर से रन करता हूं), जो पेज में मेरी स्थिति खो देता है।

मुझे लगता है कि स्वरूपण प्रक्रिया काफी सीपीयू गहन है, या शायद यह निश्चित टर्मिनल आकारों के प्राचीन काल से उपजी है। lessपेजर गतिशील, टर्मिनल आकार बदलने की घटनाओं के प्रति प्रतिक्रिया करता है, तो यह सिद्धांत में संभव होना चाहिए।

मैंने मैन पेजों को देखने की कोशिश की, वेब सर्च किया, आईआरसी से पूछा - पूरे बहुत - लेकिन कुछ भी नहीं आ सका।

  • क्या मैं यूटिलिटी के भीतर या बाहर से रिफॉर्मैटिंग को ट्रिगर कर सकता हूं?

  • क्या मैन उपयोगिता का एक संस्करण है जो पृष्ठ को गतिशील रूप से आकार देता है?

  • क्या इसे अपडेट करने के लिए फ़ॉर्मेटिंग / डिस्प्ले प्रक्रिया के कुछ हिस्से को अनुकूलित करने का कोई तरीका है SIGWINCH?


manवास्तव lessमें पेजर के रूप में उपयोग करता है ; आप सहायता स्क्रीन hप्राप्त करने के लिए एक आदमी पृष्ठ में हिट कर सकते lessहैं। मैं नहीं कर रहा हूँ यकीन है कि क्यों यह गतिशील आदमी पृष्ठों का आकार परिवर्तन नहीं करता है
माइकल Mrozek

3
समस्या यह प्रतीत होती है कि manआउटपुट को शब्द की चौड़ाई तक ले जाती है। आपको जो चाहिए वह पेजर है जो बुकमार्क कर सकता है जहां आप दस्तावेज़ में हैं, आदमी को फिर से निष्पादित करें (जो कि वास्तव में इसके बारे में कोई विचार नहीं है क्योंकि यह इसे पाइप किया गया है) और बुकमार्क पर वापस लौटें। वैकल्पिक रूप से, एक नया आदमी कमांड जो एक पेजर को शामिल करता है।
निक्शे

जवाबों:


11

मूल समस्या यह है कि स्वरूपण एक प्रोग्राम द्वारा किया जाता है और पेजिंग दूसरे द्वारा किया जाता है। यहां तक ​​कि अगर फ़ॉर्मेटर को एक संकेत प्राप्त करना था कि खिड़की का आकार बदल गया है और नए विंडो आकार के लिए पाठ को पुन: स्वरूपित कर रहा है, तो यह सब कर सकता है कि पेजर को पाइप लाइन के नीचे नया पाठ खिलाएं। पेजर के लिए निश्चितता के साथ यह जानने का कोई तरीका नहीं है कि नई धारा में कौन सी स्थिति उस पुरानी धारा की स्थिति से मेल खाती है जिसे वह वर्तमान में प्रदर्शित कर रहा था।

सुधार के लिए सक्षम होने के लिए आपको पेजर की आवश्यकता है। जैसा कि @ रॉबिन ग्रीन ने कहा, वह HTML है।

यदि आप HTML का उपयोग करना चाहते हैं, लेकिन फिर भी टर्मिनल में काम करते हैं, तो आप man(1)HTML में आउटपुट करने के लिए कह सकते हैं और इसे प्रदर्शित करने के लिए एक टेक्स्ट-मोड ब्राउज़र को कॉल कर सकते हैं ।

man -Hlynx man

यह man(1)मेन पेज को lynx टेक्स्ट-मोड ब्राउजर में प्रदर्शित करेगा । लिंक्स सीधे खिड़की के आकार में परिवर्तन का जवाब नहीं देता है, लेकिन आप ctrl-R दबा सकते हैं और lynx नए विंडो आकार के लिए पृष्ठ को फिर से प्रस्तुत करेगा।

दो अन्य टेक्स्ट-मोड ब्राउज़र हैं जो मुझे पता है: लिंक और एलिंक। आप उन और लिनेक्स के साथ प्रयोग कर सकते हैं और निर्धारित कर सकते हैं जो आपको मैन पेज ब्राउज़ करने के लिए सबसे अच्छा अनुभव देते हैं। आप केवल मैन पेजों के लिए एक कस्टम कॉन्फ़िगरेशन का उपयोग करना चाह सकते हैं और उस स्क्रिप्ट को आमंत्रित कर सकते हैं जो उस विशिष्ट कॉन्फ़िगरेशन के साथ ब्राउज़र को आमंत्रित करता है।

आप MANOPTपर्यावरण चर में अपने पसंद के आदमी के विकल्प डाल सकते हैं ।

$ export MANOPT=-Hlynx
$ export MANOPT=-Hmanlynx # manlynx invokes lynx with a different configuration.

HTML उत्पन्न करने में सक्षम होने के groffलिए आपको पैकेज स्थापित करना होगा man


-Hआदमी को तर्क की सीमा यह है कि यह एक वेबसर्वर का उपयोग नहीं करता है, लेकिन बस एक छोटी सी फ़ाइल। हालांकि यह गलत फ़ायरवॉल के साथ किसी भी समस्या से बचा जाता है, यह अन्य मैन पेजों को हाइपरलिंक करने की अनुमति नहीं देता है (जो कम से कम कुछ थर्ड-पार्टी मैन-> HTML स्क्रिप्ट का समर्थन करता है)।
रॉबिन ग्रीन

1
@ रॉबिन ग्रीन: यह सवाल री-सेबल टर्मिनल विंडो में मैन पेज को सपोर्ट करने के बारे में है। उस संदर्भ में वेबसर्वर का उपयोग नहीं करना एक सीमा नहीं है। और हाइपरलिंक नहीं होना कोई सीमा नहीं है, क्योंकि मैन पेज में प्रदर्शित lessहाइपरलिंक्स नहीं हैं।
कैमह

यह सच है, यह निश्चित रूप से एक वैध जवाब है।
रॉबिन ग्रीन

4

मैन पेजर जैसे उपयुक्त स्क्रिप्ट का उपयोग करके मक्खी पर मैन पेज को HTML में परिवर्तित करें , उन्हें वेब ब्राउज़र में देखें (जो कि निश्चित रूप से एक पाठ-आधारित वेब ब्राउज़र जैसे lynx हो सकता है)।

यह संभवतः इसलिए है कि किसी ने भी इस समस्या को हल नहीं किया है - क्योंकि यह समस्या मनुष्य के विकास के साथ अप्रासंगिक हो गई थी-> HTML स्क्रिप्ट।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.