इन चरों के झुंड को सेट करते समय मैंने इन सुंदर रंगों को मैनपाट में कम देखा। उनका क्या मतलब है, दस्तावेज कहां है? क्या इसकी व्याख्या कम या अधिरोपित है?
इन चरों के झुंड को सेट करते समय मैंने इन सुंदर रंगों को मैनपाट में कम देखा। उनका क्या मतलब है, दस्तावेज कहां है? क्या इसकी व्याख्या कम या अधिरोपित है?
जवाबों:
टर्मकैप एक पुस्तकालय है जो टर्मिनल तक पहुंचने के लिए कम उपयोग करता है। टर्मकैप मोटे तौर पर अप्रचलित है, जिसे टर्मिनफो द्वारा बदल दिया गया है , लेकिन टर्मिंफो आवेदनों के लिए एक टर्मकैप अनुकूलता इंटरफेस प्रदान करता है। कम टर्मपैक इंटरफेस के साथ सामग्री है और इसका उपयोग करता है।
टर्मपैक लाइब्रेरी टर्मिनल की सुविधाओं का विवरण है। प्रत्येक सुविधा की पहचान दो-अक्षर (या आमतौर पर दो-वर्ण) कोड द्वारा की जाती है। उदाहरण के लिए, hc
हार्डकॉपी टर्मिनलों (यानी प्रिंटर, स्क्रीन नहीं) की पहचान करता है; co
स्तंभों की संख्या है; md
बोल्ड टेक्स्ट प्रदर्शित करना शुरू करता है। प्रत्येक क्षमता का एक मूल्य होता है, जो एक बूलियन (जैसा कि hc
), एक पूर्णांक (जैसा co
) या एक स्ट्रिंग (जैसा कि md
) हो सकता है। कई स्ट्रिंग्स ऐसे सीक्वेंस से बचते हैं जो एक निश्चित प्रभाव को प्राप्त करने के लिए टर्मिनल को भेज सकते हैं।
क्यों बचते हैं सीक्वेंस? क्योंकि टर्मिनल और एप्लिकेशन के बीच का इंटरफ़ेस एक कैरेक्टर स्ट्रीम (अधिक सटीक रूप से, प्रत्येक दिशा में एक कैरेक्टर स्ट्रीम: उपयोगकर्ता इनपुट के लिए एक, डिस्प्ले के लिए आउटपुट के लिए एक) है। जब कोई एप्लिकेशन टर्मिनल पर एक चरित्र लिखता है, तो यह आमतौर पर प्रदर्शित होता है। कुछ वर्णों का एक अलग व्यवहार होता है: वे नियंत्रण वर्ण होते हैं, जो कर्सर को इधर-उधर ले जाने, प्रदर्शन विशेषताओं को बदलने आदि जैसी चीज़ें करते हैं, नियंत्रण वर्णों की तुलना में बहुत अधिक कमांड होते हैं, इसलिए अधिकांश क्रम एस्केप अनुक्रम द्वारा एक्सेस किए जाते हैं, जो इसके साथ शुरू होते हैं एक विशेष चरित्र (अक्सर पलायन चरित्र, इसलिए नाम)।
उदाहरण के लिए, जब लेस कुछ बोल्ड टेक्स्ट प्रदर्शित करना चाहता है, तो यह md
क्षमता का मूल्य दिखता है। यह एक स्ट्रिंग है, जो टर्मिनल को कम लिखता है। टर्मिनल इस स्ट्रिंग को भागने के क्रम के रूप में पहचानता है, और इसकी आंतरिक स्थिति को समायोजित करता है ताकि बाद के पात्रों को बोल्ड में प्रदर्शित किया जा सके।
हार्डवेयर टर्मिनलों के शुरुआती दिनों में, विभिन्न ब्रांडों के अलग-अलग अनुक्रम और क्षमताएं थीं; टर्मपैक डेटाबेस और इंटरफ़ेस का आविष्कार किया गया था ताकि अनुप्रयोगों को हर टर्मिनल मॉडल के बारे में पता न चले। आजकल अधिकांश टर्मिनल एमुलेटर में बहुत ही समान क्षमताएं हैं, लेकिन टर्मकैप या टर्मिनफो डेटाबेस अभी भी मामूली अंतर से निपटने के लिए उपयोगी है।
LESS_TERMCAP_*
चर वातावरण में या में सेट किया जा सकता .lesskey
फ़ाइल । यह टर्मिनल क्षमताओं के लिए वैकल्पिक मूल्यों के साथ कम प्रदान करता है। जब कम एक टर्मिनल क्षमता का उपयोग करना चाहता है, तो बोल्ड पर स्विच करें, यह पहले जांचता है कि क्या कोई LESS_TERMCAP_md
चर है। यदि यह चर मौजूद है, तो बोल्ड पर स्विच करने के लिए एस्केप अनुक्रम के रूप में अपने मान का उपयोग करता है। यदि नहीं, तो यह टर्मपैक डेटाबेस से मूल्य का उपयोग करता है। यह तंत्र कम के लिए उपयोगकर्ता को टर्मकैप डेटाबेस सेटिंग्स को ओवरराइड करने की अनुमति देता है।
सबसे उपयोगी LESS_TERMCAP_*
सेटिंग्स एस्केप सीक्वेंस हैं। आप विशेषताओं को विभिन्न विशेषताओं में मैप कर सकते हैं। आप tput
सिस्टम के टर्मकैप या टर्मिनेफो डेटाबेस में वर्तमान टर्मिनल के लिए क्षमता का मान देखने के लिए कमांड का उपयोग कर सकते हैं । यदि आप टर्मिनल-निर्भर होने का बुरा नहीं मानते हैं तो आप सीधे बच दृश्यों का उपयोग कर सकते हैं। उदाहरण के लिए, यह सेटिंग बोल्ड रेड में प्रदर्शित करने के लिए कम बताती है जब उसे बोल्ड में प्रदर्शित करने का निर्देश दिया जाता है:
LESS_TERMCAP_md=$(tput md; tput AF 1)
या यदि आपका tput
कमांड नाम का समर्थन नहीं करता है:
LESS_TERMCAP_md=$(tput bold; tput setaf 1)
मैन कुछ बहुत ही सरल प्रारूपण के साथ पाठ भेजता है जो केवल बोल्ड और इटैलिक व्यक्त कर सकता है। इसके अलावा, लेस अपने आंतरिक उपयोग के लिए विभिन्न स्वरूपण क्षमताओं का उपयोग करता है, जैसे कि खोज परिणामों को उजागर करने और तल पर मोड लाइन प्रदर्शित करने के लिए। भागने के कुछ अनुक्रम यहां दिए गए हैं जो कम उपयोग करता है (मैं केवल उन क्षमताओं को सूचीबद्ध करता हूं जो इसे रीमैप करने के लिए काफी उपयोगी है):
termcap terminfo
ks smkx make the keypad send commands
ke rmkx make the keypad send digits
vb flash emit visual bell
mb blink start blink
md bold start bold
me sgr0 turn off bold, blink and underline
so smso start standout (reverse video)
se rmso stop standout
us smul start underline
ue rmul stop underline
रंग में आउटपुट दिखाने के लिए, setaf
क्षमता (या AF
टर्मकैप के साथ) का उपयोग करें।
LESS_TERMCAP_*
सेटिंग्स में वर्णित नहीं हैं LESS
प्रलेखन। सबसे अच्छा संदर्भ जो मैं पेश कर सकता हूं वह मेरा उत्तर है ।
गिलेस का उत्तर उत्कृष्ट है, लेकिन इसने मुझे जिज्ञासु बना दिया:
टर्मकैप मोटे तौर पर अप्रचलित है, जिसे टर्मिनफो द्वारा बदल दिया गया है
अगर टर्मकैप अप्रचलित है, तो मैं टर्मिनेटो में स्विच करना चाहता हूं
मैं भी टर्मकैप से दूर जाना चाहता हूं क्योंकि मुझे एक बग मिला है। कहो कि आप अपने ~/.profile
या इससे मिलते-जुलते शब्द का वैरिएबल रखते हैं :
export LESS_TERMCAP_so=$(printf '\33[5;30;43m')
export LESS_TERMCAP_se=$(printf '\33[m')
उसके बाद यदि आप प्रवेश करते हैं set
, तो टर्मपैक चर आपके रंग आउटपुट को गड़बड़ कर देते हैं।
Terminfo पर स्विच करने के लिए, आप एक फ़ाइल बना सकते हैं xterm-pretty.ti
:
xterm-pretty|xterm with pretty colors,
# exit standout mode
rmso=\e[m,
# begin standout mode
smso=\e[5;30;43m,
# similar terminal
use=xterm,
फ़ाइल संकलित और स्थापित करें:
tic xterm-pretty.ti
~/.profile
या इसके समान रेखा जोड़ें :
TERM=xterm-pretty