Mengapa kita membutuhkan begitu banyak paket emulator terminal dan apa penggunaannya?

8

Ini adalah sesuatu yang sangat membingungkan saya sejak lama.
Saya menggunakan Linux tetapi saya memiliki celah dalam pemahaman saya tentang aspek-aspek tertentu dan satu tentang terminal.
Seperti yang saya pahami, apa yang kami maksud dengan konsol adalah emulator terminal lama.
Tapi saya tidak bisa mengerti apa masalahnya dengan ini.
Ketika saya membaca terminal lama terbaik adalah seri VT dan jenis grafik vektor (Tektronix).
Jadi saya berasumsi bahwa emulator saat ini meniru ini.
Sekarang kebutuhan saya di Linux tentang presentasi tampilan telah mencapai sejauh menggunakan colorcheme untuk vim dan menghargai warna ketika melakukan file diff.
Tapi ketika saya memiliki masalah yang saya biasanya menemukan saran untuk set xterm-256atau screen-256dll
Selain itu ketika saya lakukan:ls /lib/terminfo/ Saya melihat sekitar selusin direktori dengan konfigurasi untuk (saya berasumsi) berbagai jenis emulator.

Jadi pertanyaan saya adalah, bagaimana ini xterm-256atau screen-256dan sisanya sesuai dengan gagasan meniru terminal paling atas dalam beberapa dekade terakhir?
Apa perlunya memiliki banyak jenis terminal? Apakah ini sesuatu yang harus saya perhatikan lebih dalam?
Dan mengapa saat ini dengan teknologi modern perlu meniru terminal lama ini seperti VT dan tidak memiliki sesuatu yang baru?

Mungkin kebutuhan saya terlalu sederhana juga menghargai seluk-beluk ini tetapi itu adalah sesuatu yang banyak membingungkan saya. Karena misalnya jika saya memiliki masalah dengan colorscheme saya hanya menyalin paste apa yang saya temukan di google tentang JANGKA dll tanpa benar-benar memahami apa yang saya lakukan atau apa masalahnya.

Jika seseorang membantu saya melakukan ini, itu akan sangat dihargai

Jim
sumber
2
Komentar tangensial: menetapkan $ TERM Anda adalah saran yang selalu buruk (kecuali jika ada di screenatau tmux) ...
jasonwryan
@jasonwryan: Dalam masalah tampilan apa pun, semua pos yang disebutkan mengalihkan TERM untuk ini atau itu dan ini membuat kebingungan saya lebih buruk
Jim
Biarkan terminfo db melakukan tugasnya; solusi seperti menetapkan nilai istilah dalam .bashrcyang terbaik menutupi masalah mendasar dan hanya cenderung menyebabkan masalah lebih lanjut.
jasonwryan
Idenya bukan untuk mendukung terminal paling atas dari beberapa dekade terakhir tetapi untuk mendukung hampir semua terminal mungkin ada. Istilah info tidak dibuat secara eksklusif untuk digunakan pada sistem Linux tetapi memiliki sejarah yang lebih panjang.
Sami Laine
@SamiLaine: to support pretty much any terminal there might be..Tapi mengapa? Mengapa kita ingin meniru terminal dari tahun 70-an atau 80-an tanpa grafis atau layar hijau?
Jim

Jawaban:

9

Aspek aneh dari Unix biasanya ada untuk alasan yang baik, jadi Anda benar untuk mencarinya. Namun, dalam kasus ini, alasan yang bagus telah lama menjadi usang, dan Anda sedang melihat artefak antik dari masa lalu.

Satu-satunya "terminal" yang ada saat ini adalah xterm & varian. Kemampuan mereka sedikit berbeda, dalam hal yang penting bagi hanya beberapa program. Jika Anda hanya menggunakan xterm, dan tidak pernah menyentuh variabel TERM atau mengintip database terminfo, hidup Anda secara umum akan lebih baik.

Variabel TERM mengkomunikasikan informasi tentang terminal ke aplikasi melalui lingkungan, lih. man xterm . Mengubahnya tidak mengubah terminal ; itu hanya mewakili fungsionalitas terminal berbeda ke aplikasi.

Pada hari-hari terminal bawaan, perlu untuk mengatur TERM untuk mewakili terminal yang terpasang. Dalam kasus xterm, perangkat lunak dapat mengatur variabel itu sendiri. Tur singkat vim docs menunjukkan (seperti yang Anda sebutkan dalam komentar Anda) bahwa Anda harus mengubahnya untuk mendukung warna. Itu kemajuan untukmu.

mengapa hari ini ... meniru terminal lama ini seperti VT dan tidak memiliki sesuatu yang baru?

Jawabannya sama antropologisnya dengan teknis.

Sebelum GUI, akses ke mesin Unix adalah melalui terminal bodoh misalnya VT-100. Kerang dan utilitas seperti atas sudah ada. Ketika GUI menjadi praktis secara teknologi (di mana X berperan) di tahun 1980-an, pengguna Unix masih perlu menggunakan program-program itu, jadi xterm diciptakan untuk meniru kamu yang dulu VT-100.

Itu dimaksudkan sebagai pengganti sementara. "Semua orang tahu" bahwa terminal adalah masa lalu dan GUI adalah masa depan, dan semua orang berharap "segalanya" dapat diakses melalui GUI. Macintosh yang asli, misalnya, tidak memiliki tombol panah karena mengapa Anda membutuhkannya ? Tentunya baris perintah Unix samar, dengan vokal yang hilang dan bantuan tak berdaya

$ help
help: not found

akan segera pergi jalan memori drum dan kartu punch. Dan itu memang terjadi, dengan cara: 9 pengguna di 10 menjalankan Windows atau OS X tidak pernah melihat baris perintah kecuali ketika dukungan teknis mampir untuk memperbaiki sesuatu.

Kemudian dua hal terjadi pada GUI Unix, seperti itu. Windows khususnya menghabiskan uang keluar dari pasar. Ada langkah besar untuk membakukannya (lih. Sun News dan Motif OSF), dan kemudian terhenti sekitar tahun 1990. Hampir saat itu Internet lepas landas, dan hal-hal grafis di Unix pindah ke browser web. Motivasi dan uang (hal yang hampir sama) untuk merekayasa GUI lengkap untuk Unix dan membuat semua yang ada di bagian 8 manual usang hilang.

Ada alasan lain juga, yang sangat sedikit meramalkan: baris perintah memiliki keunggulan tertentu atas GUI. Pipa dan ekspresi reguler sangat kuat, belum lagi diulang dengan sejarah shell dan skrip. Bahkan dalam konteks GUI, baris perintah tetap bermanfaat . Sedemikian rupa sehingga terus ditingkatkan bahkan sampai hari ini.

Seperti yang disarankan oleh pertanyaan Anda, yang diperlukan adalah pemeriksaan ulang asumsi bahwa GUI akan menang, dan penemuan kembali terminal sebagai bagian integral darinya. Kita membutuhkan terminal baru, dengan font proporsional dan grafik bit-addressable di terminal .

Sayangnya, sepertinya tidak ada yang siap melakukan itu. Tidak ada entitas perusahaan yang akan melakukannya; pasar sangat besar, tetapi masih hanya sebagian kecil dari pengguna komputer. Pendana logis akan menjadi lembaga pemerintah seperti DARPA, tetapi penelitian antarmuka manusia dianggap "selesai" hari ini (bukankah kita sudah menemukan GUI?). Sampai lebih banyak orang - lebih banyak orang - mengenali kebutuhan, xterm adalah teman Anda, dan kemungkinan juga teman cucu Anda.

James K. Lowden
sumber
"" Semua orang tahu "bahwa terminal adalah masa lalu dan GUI adalah masa depan, dan semua orang mengharapkan" segalanya "dapat diakses melalui GUI." Kutipan diperlukan.
Faheem Mitha
+ 1.Jawaban bagus. Anda perhatikan: 1) If you just use xterm, and never touch the TERM...Bagaimana ini mungkin? Setiap skema warna untuk vim memerlukan konfigurasi seperti itu. Bahkan lebih saat menggunakannya di dalam multiplexer. Jadi saya tidak yakin bagaimana saya bisa cukup berpendidikan sehingga saya mengerti perubahan konfigurasi yang diperlukan untuk setiap masalah? 2) ... today is xterm & variantsBagaimana screen-*? Apakah itu bagian dari varian? Apa set yang tepat yang perlu diketahui pengguna? 3) Jika saya mengerti dengan benar mereka merasa lebih mudah untuk mendukung melalui emulator semua terminal pernah ada daripada membangun sesuatu dari awal? ->
Jim
Itu (tidak menciptakan sesuatu yang baru dan mendukung semua terminal yang ada) sangat aneh bagi saya
Jim
Terima kasih atas pembaruannya. Satu pertanyaan terakhir: Anda menyebutkan: The TERM variable communicates information about the terminal...Changing it doesn't change the terminal;Saya tidak begitu mengerti poin ini. Maksud saya jika TERMtidak mengubah terminal, lalu apa yang merupakan terminal dan bagaimana linux tahu apa terminfo db untuk digunakan?
Jim
Isi TERMvariabel, memang, digunakan sebagai indeks ke dalam basis data terminfo. Ketika Anda mengubahnya, Anda mengubah nilai variabel lingkungan dalam proses shell yang di- hosting xterm . Shell yang mungkin berada di mesin yang berbeda: xterm -e 'ssh _machine_name_'. Ini bukan nilai yang dilihat xterm, dan akibatnya tidak mempengaruhi perilaku xterm dengan cara apa pun. Ini membingungkan karena xterm menetapkan variabel TERM (sebagai bantuan untuk Anda) mencerminkan konfigurasinya (coba xterm -t), sementara pada saat yang sama vim mengharuskan Anda untuk mengaturnya sendiri.
James K. Lowden