Gnome-Terminal, $ TERM’in “xterm” olduğunu bildirdi


21

Ubuntu 12.10'un temiz kurulumunda, varsayılan gnome-terminali, xterm-256color raporunu vermesi gereken xterm olduğunu $ TERM olarak rapor ediyor. Bunu değiştirmenin en iyi yolu nedir? Bunu .bashrc 'a koymaktan kaçınıyorum, çünkü bu sadece sorun istiyor.


2
Xterm'in neden yanlış olduğunu açıklamak ister misiniz? Afaik'te hepimiz xterm var. Bunun yanında: Bunu bashrc'ye koymak neden sorun istediğini açıklamaya da dikkat edin?
Rinzwind

4
xtermyanlıştır çünkü çoğu uygulama 256-renk modunda çalışmaz xterm-256colorya da screen-256color(vim ve tmux umrumda olanlar). @ Fredydy gibi bunları kabuk profilime ayarlamamayı tercih ederim, çünkü SSH üzerinden farklı bir terminal türünden bağlanıyor olabilirim, çünkü bu gerçekten bunu ayarlamak için terminal emülatörünün işi. GNOME terminalinin birden fazla öykünme sağlamadığından şaşırdım.
Jim Stewart,

3
vte-0.40 (muhtemelen Ubuntu 15.10'da görünecektir) varsayılan olarak değiştirildi xterm-256colors.
egmont

Yanıtlar:


17

Başlangıçtaki komut dosyalarınızı özel olarak değiştirmemeniz tavsiye edildi ~/.bashrc. Herhangi bir "terminal algılaması" akımı $TERMveya $COLORTERMiçinde ~/.profilekullanmak yalnızca bir tahmindir ve dediğiniz gibi diğer terminalleri kullanırken (örneğin, Macun veya xterm) sorunlara neden olabilir. Terminal emülatörü grubu varsayılır $TERM, ve bu gerektiği değil kabuk içinde değiştirilebilir.

Gnome terminali, AFAIK, değiştirilecek bir konfigürasyon sunmuyor TERM, ancak başlangıç ​​komutunuzu değiştirmenize izin veriyor ve ihtiyacınız olan tek şey bu. İşte püf noktası:

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

Ardından aşağıdaki komutu kullanın:

env TERM=xterm-256color /bin/bash

Farklıysa /bin/bash, sadece tercih ettiğiniz kabukla değiştirin . Ve hayır, "$SHELL"bu satırda kabuk otomatik algılama için kullanamazsınız ;) Bunu zor kodlamanız gerekir


Bu ayarlarda "Komut Çıkıldığında:" seçeneğine bir seçenek vardır. Seçenekler "Terminalden Çık", "komutu yeniden başlat" ve "terminali açık tut" şeklindedir. Hangisini seçmeliyim?
Caleb Jay,

@CalebJay: Hangisini tercih ederseniz, bu seçenek terminal renkleriyle ilgili değildir. Komut sona erdiğinde ne yapılmalı tamamen tercih meselesidir.
MestreLion

12

256 renk yapamayan bir terminale bağlanmak için.

Özel olarak terminali tespit etmek çok daha iyi olurdu $COLORTERM. Gnome-terminalini, xfce4-terminalini, vb. Arayın ve ardından$TERM değişkeni ayarlayın xterm-256color.

İle yapıyorum:

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

4
Sadece Gnome Terminalinin 3.13'ten itibaren ayarlanmadığını unutmayın COLORTERM.
MestreLion

2
Artık ayarlanmayan sürümler COLORTERMiçin güvenebilirsiniz VTE_VERSION.
egmont

6

Terminfo 'nun xterm + 256color ( /usr/share/terminfo/x/xterm+256color) olduğu doğru olsa da , termcap sadece xterm ( /usr/share/vte/termcap/xterm)' e sahiptir, bu nedenle değişiklik $TERMyapılması önerilmemelidir.

Her neyse, $TERMgnome-terminali tarafından değil, vte tarafından ayarlanmaktadır. Bu ortam değişkeni için varsayılan değer, derleme zamanında (configure betiğine bir seçenek vererek) veya vte_pty_set_term()işlev çağrılarak değiştirilebilir . GNOME terminalinin kaynaklarına baktığımda, bunun vte_pty_set_termasla çağrılmadığını görüyorum, $TERMGNOME terminalinin ayarlarını düzenleyerek değiştirmenin bir yolu olmadığını söyleyebilirim .

Yapmanız gereken, aşağıdaki kod parçasını içine yerleştirmektir ~/.profile:

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

==yalnızca bir bash sözdizimidir, kaynak kodlu kaynak kodları için kullanmayın sh( ~/.profileDE’lerde olduğu gibi). Ayrıca, "x $ .." sözdizimine, var genişletmesini doğru şekilde alıntı yaptığınız için gerek yoktur.
MestreLion,

@MestreLion: Sorumu düzenlemek için çekinmeyin.
Andrea Corbellini

Denedim, ancak AU 6 karakterden fazla değişiklik gerektiriyor, bu nedenle yorum
MestreLion
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.