Perbedaan antara opsi tmux dan shell split pada iTerm2?

8

Saat ini saya beralih ke iTerm2 + VIM untuk lingkungan dev saya. Saya perhatikan bahwa versi terakhir dukungan iTerm2 tmuxdan ada orang yang menggunakan tmuxuntuk membagi jendela menjadi beberapa sesi. Saya juga memperhatikan bahwa iTerm2 memiliki opsi di luar kotak untuk membagi jendela menjadi beberapa sesi. Anda dapat membagi sesi sebanyak yang Anda inginkan secara vertikal dan horizontal hanya dengan menggunakan CMD + D misalnya. Jadi bagi saya sepertinya Anda dapat mencapai fungsionalitas yang sama dengan opsi-opsi itu. Saya bisa salah total.

Pertanyaan saya adalah: Apakah ada perbedaan / manfaat dengan menggunakan tmuxopsi pemisahan di iTerm2?

wonitta
sumber

Jawaban:

9

jika Anda menutup iterm2 maka shell yang melekat pada instance iterm2 dihancurkan / ditutup juga. proses-hierarki dari situasi ini:

iterm2
  +---- shell
  +---- shell
  +---- shell

jika Anda menutup iterm2 yang menampung tmux , maka tmux dan cangkang di dalam instance tmux tetap berjalan. Anda kemudian dapat memasang kembali ke instance tmux (itulah dasarnya bagaimana orang-orang bekerja pada remote-server jika koneksi turun) dan mendapatkan kembali situasi seperti sebelum Anda menutup iterm2. proses-hierarki dari situasi ini:

iterm2
  +---- tmux
          +---- shell
          +---- shell
          +---- shell

mengutip dari tmux secara langsung:

tmux adalah terminal multiplexer: memungkinkan sejumlah terminal (atau windows), masing-masing menjalankan program terpisah, untuk dibuat, diakses, dan dikendalikan dari satu layar. tmux dapat terlepas dari layar dan terus berjalan di latar belakang, kemudian disambungkan kembali.

proyek lama yang pada dasarnya menyediakan fungsi yang sama adalah layar

akira
sumber
Akira terima kasih! itu adalah pertanyaan pertama saya tentang SU dan menerima jawaban yang bagus, tepat seperti yang saya butuhkan!
wonitta
Bukankah hierarki proses lebih seperti: iterm2 > shell > tmux clientdan tmux server > shell? Jadi ketika Anda menutup iTerm, Anda menutup klien tmux tetapi server masih ada.
Henrik N
@ HenrikN: iTerm2 mungkin memanggil klien tmux "langsung". Anda akan mendapatkan efek yang sama jika Anda meluncurkan "exec tmux attach" atau yang serupa. dan ya, tmux terdiri dari 2 bagian. tetapi perbedaan itu tidak meningkatkan pemahaman mengapa pemisahan iterm2 berbeda dari pemisahan tmux, bukan?
akira
@ Akira Saya hanya ingin membersihkannya karena Anda meletakkan tmux di bawah iTerm, yang mungkin membuat lebih sulit untuk melihat bagaimana tmux bertahan ketika proses iTerm keluar. Bagi saya, cara terbaik untuk memahami itu adalah dengan menyadari bahwa server tmux tidak tergantung pada iTerm (tetapi klien tidak). Namun yang pasti, fakta bahwa tmux dan bukan iterm memiliki kulit kerang adalah poin kunci.
Henrik N
2

Jawaban yang diterima sangat bagus dan merupakan hal favorit saya tentang tmux, tetapi sering diabaikan adalah beberapa klien dapat dilampirkan ke setiap sesi tmux. Jadi, satu atau lebih pengguna dapat terhubung ke sesi tmux dari komputer yang berbeda dan mereka berbagi informasi yang sama di jendela.

davidpm4
sumber
1

Sekarang juga ada alat yang disebut iTermocil yang membawa fungsionalitas meletakkan jendela dan panel, dan menjalankan perintah pra-konfigurasi secara native ke iTerm.

Penafian: Saya pembuat alat ini (untuk fungsionalitas tepat yang dijelaskan dalam pertanyaan).

Tom Anthony
sumber