Tmux में फिक्स्ड हाइलाइटिंग


18

मुझे कंसोल पर हाइलाइटिंग (रिवर्स मोड) याद आती है क्योंकि मैंने मुख्य टर्मिनल के रूप में urxvt + tmux का उपयोग करना शुरू कर दिया था । हाइलाइट्स को इटैलिक फ़ॉन्ट के साथ बदल दिया गया था - जो पहली बार में बहुत अच्छा लग रहा है - हालांकि मैं हजारों इटैलिक में एक इटैलिक शब्द नहीं खोज सकता जब मैं कुछ में खोज करने की कोशिश करता हूं less।

यह ठीक से काम करता है, जबकि टर्मिनल प्रकार एक xterm*प्रोफ़ाइल पर सेट है (उदाहरण set -g default-terminal "xterm-color"के लिए .tmux.conf के साथ )। हालाँकि कुछ शॉर्टकट काम नहीं कर सकते हैं, इस मामले में ऐप्स को उचित ज्यामिति नहीं मिल सकती है, ... इस मामले में।

जवाबों:


11

मुझे tmux के पन्नों पर इसके बारे में जानकारी और समाधान मिल गए हैं:

स्क्रीन के टर्मऑफ़ विवरण में इटैलिक्स मोड का अभाव है और इसके स्थान पर स्टैंडआउट मोड है, लेकिन उसी एस्केप अनुक्रम का urxvtउपयोग करते हुए जो इटैलिक्स के लिए उपयोग करता है। इसका मतलब यह है कि vimइटैलिक्स की तलाश करने वाले एप्लिकेशन (जैसे ) इसे नहीं पाएंगे और इसके स्थान पर रिवर्स करने की बारी हो सकती है, जबकि स्टैंडआउट के लिए पूछने वाले एप्लिकेशन (जैसे कम) रिवर्स के बजाय इटैलिक के साथ समाप्त हो जाएंगे।

[फिक्स 1] टर्मो एंट्री को बदलें और रिवर्स + इटैलिक्स प्राप्त करें

(प्रति उपयोगकर्ता!)

अनुप्रयोगों है कि बारे में पता करने के लिए tmuxसमर्थन करता है इटैलिक और असाधारण के लिए एक उचित एस्केप अनुक्रम का उपयोग करने के, आप एक नया बनाने की आवश्यकता होगी terminfo संशोधित साथ फ़ाइल sgr, smso, rmso, sitmऔर ritmप्रविष्टियों:

$ mkdir $HOME/.terminfo/
$ screen_terminfo="screen"
$ infocmp "$screen_terminfo" | sed \
  -e 's/^screen[^|]*|[^,]*,/screen-it|screen with italics support,/' \
  -e 's/%?%p1%t;3%/%?%p1%t;7%/' \
  -e 's/smso=[^,]*,/smso=\\E[7m,/' \
  -e 's/rmso=[^,]*,/rmso=\\E[27m,/' \
  -e '$s/$/ sitm=\\E[3m, ritm=\\E[23m,/' > /tmp/screen.terminfo
$ tic /tmp/screen.terminfo

और tmux को ~ / .tmux.conf में इसका उपयोग करने के लिए कहें :

set -g default-terminal "screen-it"

यदि आपका टर्मिनल 256 रंगों का समर्थन करता है, तो उपयोग करें:

$ screen_terminfo="screen-256color"

"स्क्रीन" के बजाय। अधिक जानकारी के लिए 256 रंगों के समर्थन के बारे में FAQ प्रविष्टि देखें। यह भी ध्यान दें कि tmux अभी भी टर्मिनलों पर रिवर्स वीडियो प्रदर्शित करेगा जो इटैलिक का समर्थन नहीं करते हैं।

अपने तो urxvtसब पर इटैलिक प्रदर्शित नहीं कर सकता, यह सुनिश्चित कर लें कि आप एक इटैलिक सक्षम फ़ॉन्ट सक्षम, उदाहरण के लिए, करने के लिए जोड़ है ~ / .Xdefaults :

urxvt.italicFont: xft:Bitstream Vera Sans Mono:italic:autohint=true

[ठीक 2] रिवर्स के साथ बस इटैलिक कंट्रोल वर्ण बदलें

इस टर्मिनल ओवरराइड को ~ / .tmux.conf में जोड़ें :

set -g terminal-overrides 'rxvt-unicode*:sitm@,ritm@'

2
फिक्स 1 काम करने लगता है, लेकिन यह 2015 है, क्या यह वास्तव में इतना मुश्किल हो सकता है?
— user1338062

दुर्भाग्य से, मैं इस मुद्दे के लिए कोई बेहतर समाधान नहीं पा सकता हूं + मैंने खोज करना बंद कर दिया है जब मैंने इसे एक tmux मेलिंग सूची पर पाया ... :(
— andras.tim

4
खैर, tmux FAQ tmux 2.1 के अनुसार व्यवहार को ठीक करना चाहिए। इसलिए मुझे लगता है कि यह केवल अस्थायी रूप से आवश्यक है। मैंने व्यक्तिगत रूप से सिर्फ वही किया जो ओपी ने कहा था और मेरे default-terminalलिए निर्धारित किया था xterm।
— user1338062

कभी-कभी यह इतना अच्छा नहीं होता है। जैसे जब आपको PuTTY के साथ संगत करना है तो आप xtermकेवल screeenवेरिएंट का उपयोग नहीं कर सकते ।
— andras.tim

1
फिक्स 1 ने मेरे लिए काम किया, लेकिन मेरे सौरकृत dircolorsगायब हो गए; मैं TERM screen-itटर्मिनलों की सूची में जोड़कर इसे ठीक करने में सक्षम था ~/.dircolors।
— बेंजामिन डब्ल्यू।

4

जल्दी रास्ता:

set -g terminal-overrides "screen.xterm-new"

बिना किसी और जादू के काम करता है (और अभी भी tmux मैनुअल में चेतावनी को "स्क्रीन" या व्युत्पन्न होने की आवश्यकता वाले टर्मिनल प्रकार के बारे में चेतावनी देता है)।


1
मेरे लिए पूरी तरह से काम करता है, उदाहरण के लिए watch -n10 -d COMMAND args..अब परिवर्तनों का पता लगाने की अनुमति देता है (जैसे रिक्त स्थान! आप इटैलिक रिक्त स्थान कैसे करते हैं?)। मुझे लगता है कि यह स्वीकृत उत्तर होना चाहिए। नोट: जब टर्मिनल पहले से ही खुला है, तो उपयोग करेंTERM=screen.xterm-new; export TERM
— Tino

2

मैं आर्क लिनक्स में urxvt चलाता हूं। सेशन के जवाब ने मेरी मदद नहीं की। इससे मुझे मदद मिली:

https://github.com/tmux/tmux/blob/2.1/FAQ#L355-L383


italicकि खोज और चलाने; फिर, इसे tmux config में रखें

set -g default-terminal "tmux"

"tmux-256color" का उपयोग न करें। (यह कोशिश करो, मुझे लगता है, लेकिन यह मेरे लिए काम नहीं किया।)


अंत में, इसे अपने आरसी (.zshrc, .bashrc, आदि) में जोड़ें:

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