Apakah benar mengatur variabel $ TERM secara manual?

10

Saya mengatur $TERMvariabel menambahkan baris XTerm*termName: xterm-256colorke .Xresourcesfile saya . Ketika saya melakukannya saya tidak tahu apa artinya sebenarnya (saya mengikuti panduan online untuk mengubah tampilan xterm), tetapi sekarang saya telah membaca lebih sedikit dan khawatir jika apa yang saya lakukan salah. Secara khusus saya ingin tahu ada sesuatu yang buruk dalam mengatur $TERMvariabel secara manual, dan jika demikian, bagaimana saya bisa mengembalikan kesalahan saya.

Jika Anda perlu, saya menjalankan Fedora 20 dengan xterm.

Santaru72
sumber
Ini adalah pertanyaan pemrograman umum. Tergantung pada apa yang akan kamu lakukan. Jika Anda dapat menerima begitu saja lingkungan desktop dan tidak adanya koneksi jarak jauh, mungkin OK. Jika tidak, semua kasus yang mungkin harus diproses dengan pengecekan kesalahan.
41754
@uprego Bisakah Anda menguraikan "absensi koneksi jarak jauh"?
Santaru72
Anda mungkin menggunakan sesi tmux permanen dengan opsi 256 warna, tetapi jika Anda melampirkannya dari sesi ssh, kemungkinan skenario memperluas terlalu banyak untuk dicantumkan. Setiap aplikasi akan memiliki atau tidak efek yang diinginkan tergantung pada kemampuan masing-masing programmer. Seperti yang ditunjukkan @goldilocks dalam jawabannya tidak boleh berbahaya, tetapi ada perbedaan antara "tidak boleh" dan "tidak bisa".
41754
@uprego: Secara realistis, saya seharusnya mengatakan "tidak bisa", kecuali jika Anda menghitung keluaran yang tidak terbaca sebagai "berbahaya".
goldilocks

Jawaban:

7

Untuk sebagian besar, Anda tidak boleh mengatur TERMsecara manual. Variabel selalu diatur secara otomatis, dan hanya ada serangkaian keadaan sempit di mana nilai default salah.

Nilai TERMkebutuhan harus dirujuk dalam basis data terminfo sistem (atau untuk beberapa sistem kuno, dalam basis data termcap ). Terminfo dan Termcap memetakan tipe terminal ke deskripsi kemampuan terminal yang digunakan aplikasi. Nilai TERMadalah tipe terminal.

Alasan utama mengapa Anda kadang-kadang perlu berubah TERMadalah jika Anda masuk secara jarak jauh, ketika mesin lokal dan mesin jarak jauh memiliki basis data terminal yang berbeda.

Alasan lain, yang terkait dengan yang sebelumnya, adalah bahwa kadang-kadang ada beberapa entri serupa untuk terminal, dengan kemampuan yang sedikit berbeda. Ini cenderung terjadi terutama ketika terminal baru muncul yang kompatibel dengan terminal yang ada, tetapi memiliki lebih banyak fitur. Anda kemudian mendapatkan pilihan antara menggunakan nama tradisional, yang dipahami semua mesin, tetapi yang hanya mengiklankan fitur tradisional, atau nama yang lebih baru, yang mengiklankan semua fitur baru tetapi yang tidak dimengerti oleh beberapa mesin.

Contohnya adalah xterm dengan 16 warna vs xterm dengan 256 warna. Xterm tradisional hanya mendukung 16 warna, jadi itulah yang xtermditentukan oleh terminal terminal. Mengubah xtermentri akan membuat pengguna dari versi xterm yang lebih baru bahagia, tetapi akan memecah konfigurasi pengguna versi xterm yang lebih lama yang masuk secara jarak jauh. Beralih ke nama baru -  xterm-256color- memberikan kemampuan yang lebih baru kapan pun tersedia, tetapi tidak dikenali jika Anda masuk dari jarak jauh ke mesin dengan basis data terminal yang lebih lama. Karena tidak ada solusi yang dapat memuaskan semua orang, Anda mendapatkan pilihan: tetap dengan xtermdan tidak mendapatkan 256 warna, atau menggunakan xterm-256coloryang tidak berfungsi jika Anda masuk ke mesin jarak jauh yang tidak mendukungnya.

Meninggalkan nilai default xtermdan mengatur termNamesumber daya xterm-256color(yang menyebabkan variabel lingkungan TERMdiatur ke nilai yang sama) dengan demikian keduanya merupakan pilihan yang masuk akal. Menetapkan TERMnilai-nilai sewenang-wenang tidak akan berhasil, tetapi keduanya xtermdan xterm-256colormasuk akal.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
3

Saya mengatur variabel $ TERM menambahkan baris XTerm * termName: xterm-256color ke file .Xresources saya.

Tidak apa-apa, asal Anda tahu apa yang sudah Anda lakukan; sebagian besar terminal GUI mendukung ini.

Anda juga dapat mengaturnya dari baris perintah atau dalam skrip

export TERM=xterm-256color

Ini hanya berlaku untuk terminal itu, atau anak-anak berikutnya.

Standar portabel mungkin adil xterm, yang berarti dukungan 16 warna. Jika Anda memiliki 256-set warna dan terminal Anda tidak mendukungnya, menjalankan 256 aplikasi TUI hanya akan terlihat aneh; Anda mungkin akan segera menyadarinya. Tapi itu seharusnya tidak berbahaya.

goldilocks
sumber
Jadi pengaturan XTerm*termName: xtermbukannya XTerm*termName: xterm-256colorsaya harus baik-baik saja, kan?
Santaru72
Jika itu yang Anda inginkan, jangan atur apa pun; xtermadalah default untuk xterm;) tetapi artinya 16 warna. Poin utama penggunaan xterm-256coloradalah untuk memberi tahu aplikasi bahwa terminal mendukung 256 warna . Jika Anda tidak melakukannya, mereka akan menganggap 16 warna.
goldilocks