ग्नोम-टर्मिनल $ TERM को `xterm` होने की रिपोर्ट करता है


21

उबंटू 12.10 की एक साफ इंस्टॉल पर, डिफ़ॉल्ट गनोम-टर्मिनल $ TERM को xterm होने की रिपोर्ट कर रहा है जहां इसे वास्तव में xterm-256color की रिपोर्टिंग करनी चाहिए। इसे बदलने का सबसे अच्छा तरीका क्या है? मैं इसे अपने .bashrc में डालने से बच रहा हूँ क्योंकि यह सिर्फ परेशानी पूछ रहा है।


2
यह समझाने की देखभाल करें कि xterm गलत क्यों है? अफाक हम सब का xterm है। इसके अलावा: यह भी समझाने की परवाह करें कि इसे बैशके में डालने से परेशानी क्यों हो रही है?
रिनजविंड

4
xtermगलत है क्योंकि अधिकांश एप्लिकेशन 256-रंग मोड में काम नहीं करेंगे, जब तक कि यह xterm-256colorया screen-256color(विम और टक्स मुख्य मैं होने की परवाह नहीं करता)। @Freddy की तरह मैं इन्हें अपने शेल प्रोफाइल में सेट नहीं करना पसंद करूंगा, क्योंकि मैं SSH के ऊपर एक अलग टर्मिनल प्रकार से कनेक्ट हो सकता हूं, और क्योंकि यह वास्तव में टर्मिनल एमुलेटर का काम है। मुझे आश्चर्य है कि सूक्ति-टर्मिनल कई उत्सर्जन प्रदान नहीं करता है।
जिम स्टीवर्ट

3
vte-0.40 (जो कि संभवत: Ubuntu 15.10 में दिखाई देगा) ने डिफ़ॉल्ट को बदल दिया xterm-256colors
इग्मॉन्ट

जवाबों:


17

आपको अच्छी तरह से सलाह दी गई थी कि आप अपने स्टार्टअप स्क्रिप्ट को विशेष रूप से न बदलें ~/.bashrc। वर्तमान $TERMया $COLORTERMमें किसी भी "टर्मिनल का पता लगाने" का ~/.profileकेवल एक अनुमान है, और, जैसा कि आपने कहा, अन्य टर्मिनलों (जैसे, पोटीन या एक्सटर्म) का उपयोग करते समय परेशानी का कारण हो सकता है। टर्मिनल एमुलेटर सेट $TERMकरना चाहिए, और इसे शेल के भीतर से नहीं बदलना चाहिए ।

गनोम टर्मिनल, AFAIK, TERMइसे बदलने के लिए एक कॉन्फ़िगरेशन की पेशकश नहीं करता है , लेकिन यह आपको अपने स्टार्टअप कमांड को बदलने की अनुमति देता है, और आपको इसकी आवश्यकता है। यहाँ चाल है:

Profile Preferences => Title and Command => Run a custom command instead of my shell

फिर निम्न कमांड का उपयोग करें:

env TERM=xterm-256color /bin/bash

/bin/bashयदि यह अलग है तो बस अपने पसंदीदा शेल से बदलें । और नहीं, आप "$SHELL"शेल ऑटो-डिटेक्शन के लिए उस लाइन में उपयोग नहीं कर सकते हैं ;) आपको इसे हार्ड-कोड करना होगा


उन सेटिंग्स में एक विकल्प है "जब कमांड निकास:" विकल्प "टर्मिनल से बाहर निकलें," "कमांड को पुनरारंभ करें," और "टर्मिनल को खुला रखें।" मुझे कौन सा चयन करना चाहिए?
कालेब

@CalebJay: आप जो भी पसंद करते हैं, वह विकल्प टर्मिनल रंगों से संबंधित नहीं है। जब आदेश समाप्त होता है तो क्या करना है, विशुद्ध रूप से प्राथमिकता का विषय है।
मेस्त्रेलियन

12

एक टर्मिनल से जुड़ने के लिए जो 256 रंगों को करने में सक्षम नहीं है।

यह विशेष रूप से टर्मिनल का पता लगाने के लिए बेहतर होगा $COLORTERM। सूक्ति-टर्मिनल, xfce4- टर्मिनल, आदि के लिए देखें, और फिर$TERM चर को सेट करें xterm-256color

मैं इसके साथ करता हूं:

if [ "$COLORTERM" = "gnome-terminal" ] || [ "$COLORTERM" = "xfce4-terminal" ]
then
    export TERM=xterm-256color
elif [ "$COLORTERM" = "rxvt-xpm" ]
then
    export TERM=rxvt-256color
fi

4
बस ध्यान रखें कि 3.13 से Gnome टर्मिनल COLORTERMअब और सेट नहीं होता है।
MestreLion

2
उन संस्करणों के लिए जो अब सेट नहीं होते हैं COLORTERMआप पर भरोसा कर सकते हैं VTE_VERSION
इग्मोंट

6

हालांकि यह सही है कि टर्मफोर्स में xterm + 256color ( /usr/share/terminfo/x/xterm+256color) है, टर्मकैप में सिर्फ xterm ( /usr/share/vte/termcap/xterm) है, इसलिए बदलने की $TERMसलाह नहीं दी जानी चाहिए।

किसी भी तरह, $TERMगनोम-टर्मिनल द्वारा निर्धारित नहीं है, लेकिन वीटीई द्वारा। उस पर्यावरण चर के लिए डिफ़ॉल्ट मान या तो संकलन समय (कॉन्फ़िगर स्क्रिप्ट का एक विकल्प दे) या vte_pty_set_term()फ़ंक्शन को कॉल करके बदला जा सकता है । सूक्ति-टर्मिनल के स्रोतों को देखते हुए, मैं देखता हूं कि vte_pty_set_termकभी भी फोन नहीं किया जाता है, इसलिए मैं कह सकता हूं कि $TERMसूक्ति-टर्मिनल की सेटिंग्स को संपादित करके संशोधित करने के कोई तरीके नहीं हैं ।

आपको जो करना है वह कोड के निम्नलिखित टुकड़े को अपने स्थान पर रखना है ~/.profile:

if [ "$TERM" = "xterm" ]
then
    export TERM=xterm-256color
fi

==एक बैश-केवल सिंटैक्स है, इसका उपयोग उस स्निपेट के लिए न करें जिसका उद्देश्य sh( ~/.profileडीईए के साथ मामला है ) को खट्टा होना है। इसके अलावा, "x $ .." सिंटैक्स की आवश्यकता नहीं है क्योंकि आप सही तरीके से संस्करण विस्तार को उद्धृत कर रहे हैं।
MestreLion

@MestreLion: मेरे प्रश्न को संपादित करने के लिए स्वतंत्र महसूस करें।
एंड्रिया कोरबेलिनी

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