Tmux neden TERM değişkenini ekrana ayarlıyor?


19

Alıntı yapan tmuxsayfa sayfası:

Tmux içinde çalışan tüm programlar için TERM ortam değişkeni “ekran” olarak ayarlanmalıdır. Yeni pencereler otomatik olarak ortamlarına “TERM = ekran” eklenecektir, ancak kabuk başlangıç ​​dosyalarında bu ayarın sıfırlanmamasına dikkat edilmelidir.

Bunun nedeni, tmuxoturum screenen düşük ortak payda olan herhangi bir terminale (örn. Uzak) bağlanabileceğinden mi? Terminalimi tanıyorsam, beklenmedik sonuçlar olmadan zorlayabilir miyim, yoksa bazı desteklenmeyen yetenekler kırılabilir mi (kaydırma gibi)?

Yanıtlar:


13

Bunu, GNU ekranı için önceden kurulmuş terminal açıklamasından yararlanmak için yapar.

Hem tmux hem de ekran , farklı terminallerden bağlanmayı basitleştirmek için (az ya da çok) "aynı" terminal açıklamalarına sahip uygulamalar sağlar. Tmux ve screen programlarının dahili (TERM = ekran) ve harici (xterm, linux, vb.) Arasındaki farkları ele alması gerekir. Böylece screenterminal açıklaması "her yere" kurulmuştur (genellikle ncurses tarafından).

Bazı farklılıklar var:

  • GNU ekranında "öne çıkan" özelliği temsil eden çok eski bir sorun var (teknik olarak belirli bir terminal özelliği değil, curses uygulamalarının rahatlığı için bir soyutlama). tmux'un bu sınırlaması yoktur. Ama gelişmiş TERM = tmux mutlaka "her yerde" olmak zorunda değildir.
  • GNU ekranı hibrit terminal açıklamalarını kullanma özelliğine sahiptir. Harici TERM = xterm ve "screen.xterm" varlığı göz önüne alındığında, dahili TERM değeri için bunu seçer. (örneğin terminal veritabanına bakınız ). tmux bunu yapmaz.

5

İtibariyle tmux 2.1 , kullanabilirsiniz tmux terminfo'ya :

'default-terminal' artık bir oturum seçeneğidir. Ayrıca, bu 'ekran- *' olarak ayarlanmışsa, ekranın ne yaptığını taklit edin. İtalik isteniyorsa, bu 'tmux' olarak ayarlanabilir, ancak bu hala yenidir ve eski ncurses yüklemeleri olan tüm platformlarda desteklenmeyebilir.

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.