Pada instalasi Ubuntu 12.10 yang bersih, terminal gnome default melaporkan $ TERM menjadi xterm di mana ia seharusnya benar-benar melaporkan xterm-256color. Apa cara terbaik untuk mengubah ini? Saya menghindari meletakkan ini di .bashrc saya karena itu hanya meminta masalah.
gnome-terminal
Freddy
sumber
sumber
xterm
salah karena sebagian besar aplikasi tidak akan berfungsi dalam mode 256-warna kecuali ituxterm-256color
atauscreen-256color
(vim dan tmux menjadi yang utama yang saya pedulikan). Seperti @Freddy saya lebih suka untuk tidak mengatur ini di profil shell saya, karena saya mungkin menghubungkan dari tipe terminal yang berbeda melalui SSH, dan karena itu benar-benar tugas terminal emulator untuk mengatur ini. Saya kagum bahwa terminal gnome tidak menyediakan banyak emulasi.xterm-256colors
.Jawaban:
Anda disarankan untuk tidak mengubah skrip startup Anda, khususnya
~/.bashrc
. "Deteksi terminal" apa pun yang menggunakan arus$TERM
atau$COLORTERM
masuk~/.profile
hanyalah dugaan, dan dapat, seperti yang Anda katakan, menyebabkan masalah saat menggunakan terminal lain (misalnya, Putty atau xterm). Terminal emulator seharusnya diatur$TERM
, dan ini tidak boleh diubah dari dalam shell.Terminal Gnome, AFAIK, tidak menawarkan konfigurasi untuk mengubahnya
TERM
, tetapi memungkinkan Anda untuk mengubah perintah startup Anda, dan hanya itu yang Anda butuhkan. Ini triknya:Kemudian gunakan perintah berikut:
Ganti saja
/bin/bash
dengan shell pilihan Anda jika berbeda. Dan tidak, Anda tidak dapat menggunakan"$SHELL"
di dalam garis itu untuk deteksi otomatis shell;) Anda harus membuat hard-codesumber
Untuk menghubungkan dengan terminal yang tidak dapat melakukan 256 warna.
Akan jauh lebih baik untuk mendeteksi terminal secara khusus
$COLORTERM
. Cari gnome-terminal, xfce4-terminal, dll, dan kemudian atur$TERM
variabelnyaxterm-256color
.Saya melakukannya dengan:
sumber
COLORTERM
lagi.COLORTERM
Anda dapat mengandalkanVTE_VERSION
.Meskipun benar bahwa terminfo memiliki xterm + 256color (
/usr/share/terminfo/x/xterm+256color
), termcap baru saja xterm (/usr/share/vte/termcap/xterm
), jadi mengubah$TERM
tidak disarankan.Bagaimanapun,
$TERM
tidak diatur oleh gnome-terminal, tetapi oleh vte. Nilai default untuk variabel lingkungan itu dapat diubah baik pada waktu kompilasi (memberikan opsi ke skrip konfigurasi) atau dengan memanggilvte_pty_set_term()
fungsi. Melihat sumber-sumber terminal gnome, saya melihat bahwavte_pty_set_term
tidak akan pernah dipanggil, jadi saya dapat mengatakan bahwa tidak ada cara untuk memodifikasi$TERM
dengan mengedit pengaturan terminal-gnome.Yang harus Anda lakukan adalah menempatkan potongan kode berikut di
~/.profile
:sumber
==
adalah sintaks bash-only, jangan gunakan itu untuk cuplikan yang bersumber darish
(yang merupakan kasus dengan~/.profile
di DEs). Juga, sintaks "x $ .." tidak diperlukan karena Anda mengutip dengan benar ekspansi var.