Mengapa tmux mengatur variabel TERM ke layar?

19

Mengutip tmuxhalaman manual:

Variabel lingkungan TERM harus diatur ke "layar" untuk semua program yang berjalan di dalam tmux. Jendela baru akan secara otomatis memiliki "TERM = layar" yang ditambahkan ke lingkungannya, tetapi harus berhati-hati untuk tidak mereset ini dalam file start-up shell.

Apakah ini karena tmuxsesi dapat dilampirkan ke terminal apa pun (misalnya jarak jauh), screenyang merupakan common denominator terendah? Jika saya tahu terminal saya, dapatkah saya memaksanya tanpa hasil yang tidak terduga, atau akankah beberapa kemampuan yang tidak didukung rusak (seperti menggulir)?

sevo
sumber

Jawaban:

13

Hal ini dilakukan untuk memanfaatkan deskripsi terminal yang sebelumnya diinstal untuk layar GNU.

Baik tmux dan layar menyediakan aplikasi dengan (kurang lebih) deskripsi terminal "sama" untuk menyederhanakan koneksi dari terminal yang berbeda. Program tmux dan layar seharusnya menangani perbedaan antara internal (TERM = layar) dan eksternal (xterm, linux, dll). Jadi screendeskripsi terminal telah dipasang "di mana-mana" (biasanya oleh ncurses).

Ada beberapa perbedaan:

  • Layar GNU memiliki masalah yang sangat lama mewakili fitur "menonjol" (yang secara teknis bukan fitur terminal spesifik tetapi lebih merupakan abstraksi untuk kenyamanan aplikasi kutukan). tmux tidak memiliki batasan itu. Namun TERM = tmux yang ditingkatkan belum tentu "di mana-mana".
  • Layar GNU memiliki fitur untuk menggunakan deskripsi terminal hybrid. Mengingat JANGKA eksternal = xterm dan keberadaan "screen.xterm", itu akan memilih itu untuk nilai JANGKA internal. (lihat misalnya terminal terminal ). tmux tidak melakukan itu.
Thomas Dickey
sumber
5

Pada tmux 2.1 , Anda dapat menggunakan tmux terminfo :

'default-terminal' sekarang menjadi opsi sesi. Selain itu, jika ini diatur ke 'layar- *' maka tiru apa yang dilakukan layar. Jika huruf miring diinginkan, ini dapat diatur ke 'tmux' tetapi ini masih baru dan belum tentu didukung pada semua platform dengan instalasi ncurses yang lebih lama

jasonwryan
sumber