it-swarm-id.com

tmux vs. GNU

Menjelajahi pertanyaan Saya menemukan tentang tmux (saya biasanya menggunakan GNU Layar). Pertanyaan saya adalah apa kelebihan dan kekurangan dari masing-masing. Terutama saya tidak dapat menemukan banyak tentang tmux.

196
Maciej Piechotka

Dari situs web mereka :

  • Bagaimana tmux berbeda dari layar GNU? Apa lagi yang ditawarkannya?

tmux menawarkan beberapa keunggulan dibandingkan layar:

  • model client-server yang terdefinisi dengan jelas: windows adalah entitas independen yang dapat dilampirkan secara simultan ke beberapa sesi dan dilihat dari beberapa klien (terminal), serta dipindahkan secara bebas antar sesi dalam server tmux yang sama;
  • antarmuka perintah yang konsisten dan terdokumentasi dengan baik, dengan sintaksis yang sama apakah digunakan secara interaktif, sebagai pengikat kunci, atau dari Shell;
  • mudah skrip dari Shell;
  • beberapa buffer pasta;
  • pilihan tata letak kunci vi atau emacs;
  • opsi untuk membatasi ukuran jendela;
  • sintaks baris status yang lebih dapat digunakan, dengan kemampuan untuk menampilkan baris pertama output dari perintah tertentu;
  • basis kode yang lebih bersih, modern, mudah diperpanjang, berlisensi BSD.

Masih ada beberapa fitur layar termasuk tmux yang dihilangkan:

  • dukungan serial dan telnet bawaan; ini kembung dan tidak mungkin ditambahkan ke tmux;
  • dukungan platform yang lebih luas, misalnya IRIX dan HP-UX, dan untuk terminal ganjil.
124
nisc

Satu perbedaan adalah bagaimana keduanya bertindak ketika beberapa terminal dilampirkan ke satu sesi.

Dengan layar, setiap tampilan terminal yang terpasang tidak tergantung pada yang lain. Dengan tmux, semua terminal yang terpasang melihat hal yang sama.

Katakanlah Anda memiliki dua terminal yang terpasang pada satu sesi tmux. Jika Anda mengetik ^B 1 menjadi satu terminal, terminal lainnya juga beralih ke jendela 1.

Ketika Anda memiliki dua terminal yang terpasang pada satu sesi layar, dan Anda mengetik ^A 1 menjadi satu, itu tidak berpengaruh pada terminal lainnya.

Ini berdasarkan pengalaman saya dengan tmux 1.2; Saya melihat 1.3 keluar tetapi saya tidak melihat ada perubahan di changelog tentang perubahan perilaku ini.

Jika Anda menyukai perilaku layar dan menginginkannya di tmux:

Jika sesi tmux asli Anda disebut 0 (default), maka Anda dapat melakukan tmux new-session -t 0) untuk memulai sesi independen baru yang terhubung ke set windows yang sama, yang kemudian dapat memiliki tampilan sendiri.

45
drench

tmux cukup baru dibandingkan dengan layar GNU. Keuntungan/Kerugian adalah pertanyaan yang sulit, karena kedua program memecahkan masalah yang kira-kira sama. tmux dilisensikan BSD sementara layar adalah GNU GPL. Ini penting bagi sebagian orang.

layar lebih terwakili (di Linux) saat ini, yaitu, Anda lebih mungkin menemukannya di kotak linux yang diberikan daripada tmux. Namun tmux lebih terwakili di OpenBSD karena termasuk sebagai bagian dari instalasi dasar.

Kedua program memungkinkan Anda melakukan hal yang sama, meskipun keadaannya sedikit lebih rumit dari itu. Beralih di antara keduanya tidak terlalu rumit, karena banyak fungsi layar juga telah menemukan jalannya ke tmux, meskipun jika Anda adalah pengguna yang kuat di antara keduanya, Anda mungkin akan menemukan beberapa frustrasi ketika beralih ke yang lain.

Seperti halnya program apa pun, itu benar-benar tergantung pada kebutuhan Anda, dan yang lebih nyaman bagi Anda. Cobalah keduanya dan lihat dengan mana Anda bermain dengan baik.

Untuk info lebih lanjut tentang tmux, lihat https://tmux.github.io/

25
gabe.

Saya pikir saya hanya akan menyebutkan tentang pembungkus byobu yang tersedia untuk layar yang membuatnya jauh lebih baik di luar kotak. Saya tidak tahu apakah sesuatu seperti ini tersedia untuk tmux, tetapi byobu membuat .screenrc saya hanya sedikit baris. Lihat ini artikel cepat tentang byobu dan tangkapan layar. Halaman proyek untuk byob menjelaskan nama yang berasal dari istilah Jepang untuk layar multi-panel dekoratif yang berfungsi sebagai pembagi ruang lipat. Selain itu, hanya menjalankannya tidak akan merusak pengaturan layar Anda, sehingga Anda dapat mencobanya dengan aman. Setelah Anda memulai sesi dengan byobu Anda dapat dengan bebas menyambung kembali ke sana menggunakan screen dan masih belum kehilangan kustomisasi yang dilakukan oleh byobu (jadi gunakan hanya untuk doa awal). Dua keuntungan utama itu adalah:

  • Mulai layar dengan beberapa bilah status dengan informasi yang berguna
  • Menyediakan banyak ikatan tombol untuk mengakses fungsi layar dengan lebih mudah

Saya tidak menggunakan bagian keybindings, tetapi pasti menemukan bilah status berguna.

Anda juga mungkin menemukan Layar Vs tmux tautan bermanfaat. Saya pikir sebagian besar sudah disebutkan oleh jawaban yang ada.

18
haridsv

Perbedaan terbesar dalam penggunaan saya adalah bahwa di Layar Gnu Anda hanya dapat membagi bingkai secara horizontal, sedangkan di Tmux Anda dapat membagi secara horizontal dan vertikal. Ini adalah semacam target yang bergerak, meskipun seperti yang saya katakan di sini perpecahan vertikal sedang menuju layar .

Selain itu, semuanya tentang datar.

17
Eli Frey

Satu hal besar untuk screen adalah ia tidak dikembangkan secara aktif. halaman bug memiliki hampir 200 item yang belum ditugaskan selama 5 tahun.

tmux memiliki beberapa masalah terbuka juga, tetapi jauh lebih sedikit, dan lebih aktif didukung.

12
Harold

Membasahi menimbulkan poin menarik - perilaku default menghubungkan dua kali ke sesi yang sama berbeda di tmux. Namun, jika Anda ingin melampirkan dua kali dan memiliki tampilan independen dari jendela di sesi itu - mulai tmux dengan

tmux new-session -t <session name>

Itu akan membuat sesi baru untuk Anda, dan melampirkan windows dari sesi yang sudah ada. Jika Anda tidak memberi nama sesi pertama Anda, Anda dapat menambahkannya dengan 'rename-session'.

12
Rikard Anglerud

tmux lebih baru dan beberapa fitur lainnya.

Saya telah menemukan bahwa penggunaan yang baik tergantung pada pengaturan yang baik.

Saya menggunakan vi (vim) untuk mengedit (Ruby on Rails) dan ada beberapa hal pengaturan untuk membuatnya bekerja dengan baik.

Inilah file ~/.tmux.conf saya dengan banyak pengaturan yang membantu:

bind r source-file ~/.tmux.conf \; display "Reloaded!"  # Reload with ctrl-r
set -g prefix C-a         # prefix from ctrl-b to ctrl-a
unbind C-b                # allow ctrl-b for other things
set -sg escape-time 1     # quicker responses
bind C-a send-prefix      # Pass on ctrl-a for other apps
set -g base-index 1        # Numbering of windows
setw -g pane-base-index 1  # Numbering of Panes
bind \ split-window -h    # Split panes horizontal
bind - split-window -v    # Split panes vertically
bind h select-pane -L     # Switch to Pane Left
bind j select-pane -D     # Switch to Pane Down
bind k select-pane -U     # Switch to Pane Up
bind l select-pane -R     # Switch to Pane Right
bind -r C-h select-window -t :-  # Quick Pane Selection
bind -r C-l select-window -t :+  # Quick Pane Selection
bind -r H resize-pane -L 5       # Switch to Pane Left
bind -r J resize-pane -D 5       # Switch to Pane Down
bind -r K resize-pane -U 5       # Switch to Pane Up
bind -r L resize-pane -R 5       # Switch to Pane Right
setw -g mode-mouse off           # Mouse Off
set -g mouse-select-pane off     # Mouse Off  
set -g mouse-resize-pane off     # Mouse Off
set -g mouse-select-window off   # Mouse Off
setw -g monitor-activity on      # Activity Alerts
set -g visual-activity on
set -g status-fg white           # Status line Colors
set -g status-bg black
setw -g window-status-fg cyan    # Window list color
setw -g window-status-bg default
setw -g window-status-attr dim
setw -g window-status-current-fg white     # Active Window Color
setw -g window-status-current-bg red
setw -g window-status-current-attr bright
set -g pane-border-fg green      # Pane colors
set -g pane-border-bg black 
set -g pane-active-border-fg white 
set -g pane-active-border-bg yellow
set -g message-fg white          # Command/Message Line.
set -g message-bg black
set -g message-attr bright
set -g status-left-length 40     # Status Line, left side
set -g status-left "#[fg=white]Session: #S #[fg=yellow]#I #[fg=cyan]#P"
set -g status-utf8 on            # Status Line, right side
set -g status-right "-------"
set -g status-interval 60        # frequency of status line updates
set -g status-justify centre     # center window list
setw -g mode-keys vi             # vi keys to move 
unbind v                         # Open panes in same directory as tmux-panes script
unbind n
bind v send-keys " ~/tmux-panes -h" C-m
bind n send-keys " ~/tmux-panes -v" C-m
unbind Up                        # Maximizing and Minimizing...
bind Up new-window -d -n tmp \; swap-pane -s tmp.1 \; select-window -t tmp
unbind Down
bind Down last-window \; swap-pane -s tmp.1 \; kill-window -t tmp
bind P pipe-pane -o "cat >>~/#W.log" \; display "Toggled logging to ~/#W.log"
8
Michael Durrant

Saya akan dengan bebas menambahkan satu perbedaan:

tmux berbasis ncurses sedangkan layar tidak menarik elemen tambahan. Jika seseorang menggunakan terminal emulator yang mendukung pengguliran, ia akan mendapatkan gulir dengan layar tetapi tidak dengan tmux (setidaknya dalam konfigurasi default). Hal yang sama berlaku untuk fitur pencarian dan serupa.

8
Maciej Piechotka

Saya kesulitan mendapatkan layar untuk mendukung utf-8 dan 256 warna tetapi tmux bekerja dengan baik.

6
zvolkov