उन्हें हाइलाइट करने के बजाय कम हाइलाइट खोज पैटर्न बनाएं


23

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

मैंने दौड़ने का प्रयास किया man -P vim systemdलेकिन वह त्रुटि स्थिति 1 से बाहर निकल गया, इसलिए ऐसा लग रहा है कि मैं साथ फंस गया हूं less

ऐसा कुछ भी नहीं था जो मुझे man lessउस मदद में मिल रहा था (इसके बजाय मुझे पता चला कि विकल्प -Gसभी को एक साथ उजागर करना बंद कर देगा जो इटैलिक से भी बदतर है)।

कहा जा रहा है कि क्या किसी को पता है कि मैन पेज में सर्च हाइलाइटिंग (बैकग्राउंड कलर) कैसे प्राप्त करें?

FYI करें मैं Ubuntu 14.10 चलाते हैं

मैं इस सवाल के बारे में एक ही बात के बारे में पूछना लगता है भर में आया था, लेकिन मुझे यकीन नहीं है कि अगर मैं यह काम करता हूं ( LESS_TERMCAP_so)। lessआदमी पृष्ठ इस उल्लेख नहीं है। (मुझे इस समाधान के साथ अजीब परिणाम मिलते हैं)


इसका मतलब है कि आप अपनी ~/.bashrcफ़ाइल में उस पंक्ति को रखें । export LESS_TERMCAP_so=$'\E[30;43m'इस उत्तर को और भी देखें। unix.stackexchange.com/questions/38634/…
iyrin

1
कभी-कभी मैं man man | vim -अपने विम कॉन्फ़िगरेशन, कुंजियों और कार्यों का लाभ उठाने के लिए उपयोग करता हूं
JJoao

क्या आपने इसका कोई हल निकाला? मुझे एक मशीन पर सटीक एक ही समस्या है, और मैं यह पता नहीं लगा सकता कि क्या अंतर है। उपरोक्त LESS_TERMCAP_soचर पूरी फाइल को नारंगी पृष्ठभूमि में बदलने का कारण बनता है ...
user1338062

मुझे डर है कि मैं अभी भी इससे जूझ रहा हूं
sgp667

जवाबों:


16

सुपरसुसर पर एक उत्तर मिला: /superuser/566082/less-doesnt-highlight-search

ऐसा लगता है कि यह आपके TERM सेटिंग के साथ करना है। उदाहरण के लिए, सामान्य हाइलाइट टर्मिनल विंडो में कम हाइलाइटिंग सामान्य रूप से (व्हाइट बैकग्राउंड हाइलाइट) कार्य करता है, लेकिन जब मैं tmux में होता हूं, तो इटैलिक होता है। मेरे लिए अंतर यह है कि tmux में TERM को "स्क्रीन" पर सेट किया जा रहा है, लेकिन "xterm-256color" जब नहीं। जब मैंने tmux विंडो में "TERM = xterm-256color" सेट किया, तो कम में हाइलाइट करना बैकग्राउंड हाइलाइटिंग पर वापस जाता है।


मैं पहले से ही इस सवाल के बारे में भूल गया, लेकिन यह रोमांचक खबर है। जैसे ही मैं कंप्यूटर पर अपना हाथ डालूंगा, मैं इसका परीक्षण करूंगा!
sgp667 15

1
यह एक अव्यवहारिक समाधान है, क्योंकि अन्य एप्लिकेशन TERM पर स्क्रीन पर सेट होने पर निर्भर करते हैं * जब Tmux के भीतर, जैसे कि WeeChat। जब tmux में स्क्रीन पर सेट नहीं किया जाता है, तो WeeChat में अजीब रेंडरिंग मुद्दे होते हैं।
ब्लेन लाफ्रेनियोर

मैंने नोट किया है कि मुझे tmux <2.0 के साथ समस्या थी और tmux v2 के बाद से समस्या नहीं है।
आर्टफ्लोरोबॉट

शानदार खोज। अब मैं अपने CentOS 7 बॉक्स (और अन्य) पर set -g default-terminal "xterm-256color"अपने ~ / .tmux.conf में हूँ।
sshow

यह देखने के लिए भी जांचें कि क्या screen-256colorमौजूद है: प्रयास करें ls /usr/share/terminfo/s/
aDroid

8

का उल्लेख LESS_TERMCAP_soअधूरा था। यह अल्पकालिक so(स्टैंडआउट) क्षमता को ओवरराइड करने के लिए उपयोग किया जाने वाला विशेष पर्यावरण चर है। इस क्षमता का उपयोग करने के लिए, आपको एक se(स्टैंडेंड) क्षमता भी प्रदान करनी होगी ।

Terminfo (5) मैनुअल पृष्ठ एक इन सुविधाओं में से terminfo के लिए (smso / rmso) और termcap (ताकि / से) के नाम सारांश देता है:

   enter_standout_mode           smso       so        begin standout mode
   exit_standout_mode            rmso       se        exit standout mode  

हाइलाइटिंग पर इसका खंड बताता है:

यदि आपके टर्मिनल में एक या अधिक प्रकार की डिस्प्ले विशेषताएँ हैं, तो इन्हें कई अलग-अलग तरीकों से दर्शाया जा सकता है। आपको एक प्रदर्शन फ़ॉर्म को स्टैंडआउट मोड के रूप में चुनना चाहिए , जो एक अच्छा, उच्च विपरीत, आसान-पर-आंखों का प्रतिनिधित्व करता है, त्रुटि संदेशों को उजागर करने के लिए प्रारूप और अन्य ध्यान आकर्षित करता है। (यदि आपके पास एक विकल्प है, तो रिवर्स वीडियो प्लस आधा-उज्ज्वल अच्छा है, या अकेले रिवर्स वीडियो।) स्टैंडआउट मोड में प्रवेश करने और बाहर निकलने के अनुक्रम क्रमशः smso और rmso, के रूप में दिए गए हैं।

यदि आप स्टैंडआउट के लिए रंग का उपयोग करना चाहते हैं , तो आपको एक संगत प्रदान करना होगा LESS_TERMCAP_seजो रंग को रीसेट करता है। यह अपेक्षाकृत सरल है जब तक आप अन्य कारणों से मैनुअल पेज में रंगों का उपयोग करने की उम्मीद नहीं करते हैं (जैसे कि ग्रॉफ की एसजीआर रंग सुविधा का उपयोग करना)।

एक टिप्पणी में सुझाए गए मूल्य को मानते हुए:

export LESS_TERMCAP_so=$'\E[30;43m'

तो आप का उपयोग कर अधिकांश टर्मिनलों के लिए रीसेट कर सकते हैं

export LESS_TERMCAP_se=$'\E[39;49m'

वैसे, इटैलिक का कारण यह है कि जीएनयू के लिए टर्मिनल विवरण screenइटैलिक्स के लिए मानक भागने अनुक्रम का उपयोग अपने स्वयं के स्टैंडआउट / स्टैंडएंड क्षमताओं के रूप में करता है। टर्मिनल डेटाबेस प्रविष्टि में कुछ पर चर्चा की गई है ।


यह पहला समाधान था जो वास्तव में मेरे लिए काम करता था (एक मैक पर tmux में)। मैं उपरोक्त दोनों निर्यात लाइन को अपने bash config फाइल में जोड़ता हूँ।
मार्लन

हालाँकि अगर मैं इन लाइनों को हाइलाइट करने के बाद अपने सभी पर्यावरण चर को देखने के लिए "निर्यात" लिखता हूं और टर्मिनल हाइलाइट हो जाता है तो मुझे इसे बंद करना होगा और एक नई शुरुआत करनी होगी।
मार्लन

इस तरह के मामलों में, मैं चर को एक स्क्रिप्ट में रखता हूं जो उस प्रोग्राम को कॉल करता है जिसे विशेष चर की आवश्यकता होती है। परिवर्तित चर केवल स्क्रिप्ट के भीतर लागू होते हैं।
थॉमस डिकी

export | lessएक वर्कअराउंड के रूप में भी कार्य करता है
मार्लून

4

ESCuखोज के lessबाद हाइलाइटिंग खोज बंद करने के लिए मारो ; एक नई खोज इसे फिर से चालू करेगी, इसलिए सत्र हिट के लिए खोज हाइलाइटिंग को स्थायी रूप से बंद करें -G

वैकल्पिक रूप LESS='-G'से अपने वातावरण में रखें, या manजैसे दौड़ें :

LESS='-G' man less

विडंबना यह है कि यह सभी lessमेन्यू में दर्ज़ है ...

आप पर्यावरण में निम्नलिखित भी डाल सकते हैं, उदाहरण के लिए अपने में .bash_profile:

export MANPAGER='less -G'

जैसा कि मैंने अपने प्रश्न में समझाया था कि मैं इसे पूरी तरह से चालू नहीं करना चाहता, मैं यह बदलना चाहता हूं कि यह मेरी स्क्रीन पर कैसे दिखाई देता है। मेरा सवाल शायद भ्रामक हो सकता है क्योंकि किसी ने मेरे लिए इसे संपादित किया है।
sgp667

1

के लिए tmux मैं सेट TERMकरने के लिए tmux-256color । अन्य अच्छी चीजों के बीच, इसमें "सामान्य" रिवर्स हाइलाइटिंग है कम । फ़ेडोरा, या साइबरविन जैसी आधुनिक चीज़ों का उपयोग करते समय अच्छी तरह से काम करता है।

$ cat ~/.tmux.conf
⋮
set-option -g default-terminal tmux-256color

Ncurses पर Centos संकुल हालांकि दो tmux परिभाषाओं की जरूरत नहीं है ( tmux और tmux-256color )। मैंने उन्हें फेडोरा से काफी आसानी से आयात किया। थोड़ा शिकन यह है कि Centos की ncurses फेडोरा की टर्मो फाइल्स को सीधे समझने के लिए बहुत पुरानी है।

फेडोरा पर:

$ infocmp tmux256-color >temp.txt

Centos पर:

$ scp fedora-machine:temp.txt .
$ tic temp.txt

फिर tmux के अंदर :

$ TERM=tmux-256-color man tmux

परिणाम!

FYI करें टिक कमांड आपके व्यक्तिगत टर्मफोर्स डेटाबेस में संकलित टर्मिनल विवरण रखता है, अर्थात ~/.terminfo/t/tmux-256color(इस मामले में)। वैश्विक डेटाबेस में इसे स्थानांतरित करने के लिए स्वतंत्र महसूस करें यदि आप चाहते हैं कि:

$ sudo mv ~/.terminfo/t/tmux-256color /usr/share/terminfo/t/
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.