Seorang pengguna lama tmux telah mencetuskan perdebatan hangat dalam komuniti pembangun dengan mendokumentasikan perjalanan mereka meninggalkan terminal multiplexer yang popular. Selepas tujuh tahun menggunakan tmux setiap hari, mereka telah beralih kepada gabungan shpool untuk ketekunan sesi dan pengurusan tetingkap terminal asli, dengan menyebut isu prestasi dan kebimbangan kerumitan.
Kes Menentang Terminal Multiplexers
Hujah teras berpusat pada masalah seni bina asas: terminal multiplexers seperti tmux bertindak sebagai perantara yang mesti menterjemah dan mengubah suai kod melarikan diri untuk berfungsi dengan konsep tetingkap dan sesi mereka. Ini mewujudkan apa yang dikritik sebagai cascade kerumitan - lapisan tambahan yang boleh menyebabkan isu rendering warna, masalah scrollback, dan sakit kepala keserasian dengan ciri terminal yang lebih baharu. Pembangun terminal Kitty telah bersuara terutamanya mengenai perkara ini, dengan berhujah bahawa multiplexers memperlahankan inovasi di seluruh ekosistem terminal dengan memerlukan setiap ciri baharu berfungsi melalui lapisan terjemahan mereka.
Ramai pembangun telah mengalami masalah-masalah ini secara langsung. Skema warna yang kelihatan sempurna dalam terminal kendiri boleh kelihatan pudar atau salah apabila dilihat melalui tmux. Pemilihan tetikus kadang-kadang rosak merentasi panel terpisah, menjadikan operasi salin-tampal mengecewakan. Ini bukanlah isu yang memecahkan urusan untuk kebanyakan pengguna, tetapi ia mewakili jenis geseran yang terkumpul dari masa ke masa.
Penyelesaian Alternatif dan Pertukaran Mereka
Pencarian untuk alternatif tmux telah membawa kepada beberapa pendekatan yang menarik. Alat seperti dtach, abduco, dan shpool memberi tumpuan semata-mata pada ketekunan sesi - keupayaan untuk melepaskan dari dan menyambung semula kepada proses yang sedang berjalan. Pendekatan falsafah Unix ini bermakna melepaskan ciri pengurusan tetingkap tmux tetapi memperoleh scrollback terminal asli dan mengelakkan isu terjemahan kod melarikan diri.
Walau bagaimanapun, realiti adalah lebih kucar-kacir daripada teori. Kebanyakan alternatif ini bergelut dengan fungsi asas yang tmux kendalikan dengan baik. Penulis mendapati bahawa beberapa alat tidak dapat melepaskan dengan betul apabila berjalan dalam Neovim, yang akan menjadi penghalang untuk ramai pembangun. Hanya shpool yang menyediakan penyelesaian melalui mekanisme lepas berasaskan arahan, membenarkan integrasi dengan keybindings editor.
Perbandingan Alternatif tmux
Alat | Tujuan | Kelebihan | Kekurangan |
---|---|---|---|
dtach | Kegigihan sesi | Mudah, ringan | Ciri terhad, detach bermasalah |
abduco | Kegigihan sesi | Falsafah Unix | Isu fungsi asas |
shpool | Kegigihan sesi | Detach berasaskan arahan, main balik buffer | Tidak memulihkan keadaan terminal dengan betul |
WezTerm | Terminal penuh dengan multiplexing | Ciri natif, tiada isu kod escape | Memerlukan konfigurasi, tidak tersedia secara universal |
Ghostty | Emulator terminal moden | Pantas, ciri natif | Ciri multiplexing terhad pada masa ini |
Cabaran SSH dan Pembangunan Jauh
Untuk pembangun yang bekerja terutamanya melalui sambungan SSH, soalan pengurusan tetingkap menjadi lebih kompleks. Tab terminal tempatan dan ciri pengurus tetingkap tidak membantu apabila semua kerja anda berlaku dalam sesi SSH tunggal. Penyelesaian yang dicadangkan melibatkan penggunaan helah konfigurasi SSH untuk menyambung secara automatik kepada sesi shpool yang dinamakan, digabungkan dengan autossh untuk penyambungan semula automatik.
Pendekatan ini pada asasnya mencipta semula pengurusan sesi tmux di peringkat SSH, menggunakan sambungan itu sendiri sebagai mekanisme multiplexing. Walaupun bijak, ia memerlukan persediaan dan konfigurasi yang jauh lebih banyak daripada hanya menjalankan tmux pada mesin jauh.
Konfigurasi SSH untuk Integrasi shpool
Host *
ServerAliveInterval 60
ServerAliveCountMax 3
Host vm
HostName 192.168.88.xxx
User erock
IdentityFile ~/.ssh/id_ed25519
RemoteCommand shpool attach -l %k
RequestTTY yes
ControlPath ~/.ssh/cm-%r@%h:%p
ControlMaster auto
ControlPersist 10m
Konfigurasi ini membolehkan sambungan automatik ke sesi shpool yang dinamakan menggunakan arahan seperti ssh d.chat
atau ssh d.dot
.
Reaksi Komuniti dan Penggunaan Dunia Sebenar
Respons komuniti pembangun adalah bercampur tetapi bersemangat. Ramai pengguna tmux lama mempersoalkan sama ada alternatif yang dicadangkan benar-benar menyelesaikan masalah sebenar atau hanya mencipta yang baharu. Persediaan yang diterangkan dalam artikel memerlukan beberapa fail konfigurasi, tetapan SSH tersuai, dan penyelesaian untuk fungsi asas yang tmux sediakan secara langsung.
Ini ditulis untuk kumpulan Linux-on-the-Desktop, dan baik untuk mereka. Tetapi tmux benar-benar bersinar untuk orang yang menggunakan MacBooks dengan iTerm2. Integrasi tmux-nya sangat baik sehingga ia hanya hilang dalam aliran kerja saya.
Sesetengah pengguna menunjuk kepada emulator terminal moden seperti WezTerm dan Ghostty sebagai alternatif yang lebih baik, menawarkan ciri multiplexing terbina dalam tanpa isu terjemahan kod melarikan diri. Terminal ini boleh menyediakan fungsi seperti tmux secara asli, walaupun mereka memerlukan pembelajaran alat baharu dan mungkin tidak tersedia pada semua sistem.
Gambaran Besar
Perdebatan ini mencerminkan ketegangan yang lebih luas dalam pembangunan terminal antara keserasian ke belakang dan inovasi. Terminal multiplexers memenuhi keperluan sebenar - ketekunan sesi, pengurusan tetingkap, dan kebolehskripan - tetapi seni bina mereka mewujudkan kekangan pada apa yang boleh dilaksanakan oleh emulator terminal. Soalannya bukan sama ada tmux baik atau buruk, tetapi sama ada faedahnya mengatasi kos ekosistem.
Untuk kebanyakan pembangun, tmux kekal sebagai pilihan pragmatik. Ia berfungsi di mana-mana, mempunyai ekosistem yang matang, dan menyelesaikan masalah sebenar dengan konfigurasi minimum. Alternatif yang diterangkan memerlukan masa persediaan yang ketara dan mungkin tidak menyediakan fungsi yang setara. Walau bagaimanapun, untuk pengguna yang sanggup melabur dalam konfigurasi dan yang terutamanya bekerja dalam persekitaran terkawal, pendekatan asli boleh menawarkan pengalaman yang lebih bersih dengan sokongan ciri terminal yang lebih baik.
Perbincangan ini menyerlahkan bagaimana alat yang matang dan diterima pakai secara meluas boleh mempunyai had seni bina asas yang hanya menjadi jelas apabila teknologi berkembang. Sama ada ekosistem terminal akhirnya akan bergerak melepasi multiplexers masih belum dapat dilihat, tetapi perbualan itu sudah tentu telah menjadikan pembangun lebih sedar tentang pertukaran yang terlibat dalam pilihan alat mereka.
Rujukan: YOU MIGHT NOT NEED TMUX