it-swarm-eu.dev

tmux vs. GNU)

Procházení otázkami Našel jsem o tmuxu (normálně jsem používal GNU obrazovka). Moje otázka zní, jaké jsou výhody a nevýhody každého z nich. Obzvláště jsem nemohl najít hodně o tmux.

196
Maciej Piechotka

Z jejich webové stránky :

  • Jak se liší tmux od obrazovky GNU?) Co jiného nabízí?

tmux nabízí oproti obrazovce několik výhod:

  • jasně definovaný model klient-server: okna jsou nezávislé entity, které mohou být připojeny současně k více relacím a prohlíženy od více klientů (terminálů), a mohou se volně pohybovat mezi relacemi na stejném serveru tmux;
  • konzistentní, dobře zdokumentované příkazové rozhraní se stejnou syntaxí, ať už se používá interaktivně, jako vazba na klíč, nebo z prostředí;
  • snadno skriptovatelný z prostředí Shell;
  • vícenásobné vyrovnávací paměti;
  • výběr rozvržení klíčů vi nebo emacs;
  • možnost omezit velikost okna;
  • použitelnější syntaxe stavového řádku, se schopností zobrazit první řádek výstupu konkrétního příkazu;
  • čistší, moderní a snadno rozšiřitelná kodebase s licencí BSD.

Na obrazovce stále existuje několik funkcí, které tmux vynechává:

  • vestavěná sériová a telnetová podpora; toto je nadýmání a je nepravděpodobné, že by se přidalo k tmux;
  • širší podpora platforem, například IRIX a HP-UX, a pro liché terminály.
124
nisc

Jeden rozdíl spočívá v tom, jak dva působí, když je k jedné relaci připojeno více terminálů.

S obrazovkou je pohled každého připojeného terminálu nezávislý na ostatních. U tmux vidí všechny připojené terminály totéž.

Řekněme, že máte k jedné relaci tmux dva terminály. Pokud píšete ^B 1 do jednoho terminálu, druhý terminál také přepne do okna 1.

Pokud jsou k jedné relaci obrazovky připojeny dva terminály a zadáte text ^A 1 do jednoho, nemá žádný vliv na druhý terminál.

To je založeno na mých zkušenostech s tmux 1.2; Vidím 1.3 je pryč, ale nevšiml jsem si nic v changelogu o změně chování.

Pokud se vám chování obrazovky líbí a chcete to v tmuxu:

Pokud se vaše původní relace tmux nazývá 0 (výchozí), pak můžete udělat tmux new-session -t 0) spuštění nové nezávislé relace připojené ke stejné sadě oken, která pak může mít svůj vlastní pohled.

45
drench

tmux je ve srovnání s obrazovkou GNU zcela nový. Výhody/nevýhody je těžká otázka, protože oba programy řeší přibližně stejný problém. tmux je licencován BSD, zatímco obrazovka je GNU GPL. Pro některé to záleží.

obrazovka je nyní více zastoupena (v systému Linux), to znamená, že ji pravděpodobně najdete v dané linuxové krabici než tmux. tmux je však na OpenBSD více zastoupen, protože je součástí základní instalace.

Oba programy vám umožňují dělat totéž, i když stav věcí je o něco složitější. Přepínání mezi těmito dvěma není příliš komplikované, protože mnoho funkcí obrazovek si také našlo cestu do tmuxu, i když pokud jste jedním z mocných uživatelů, při přechodu na druhý pravděpodobně najdete nějaké frustrace.

Stejně jako u každého programu to opravdu záleží na vašich potřebách, se kterými jste pohodlnější. Vyzkoušejte je a vyzkoušejte si, se kterým dobře hrajete.

Více informací o tmux viz https://tmux.github.io/

25
gabe.

Myslel jsem, že bych se zmínil jen o obálce byobu, který je k dispozici pro obrazovku, díky níž je mnohem lepší hned po vybalení z krabice. Nevím, jestli je něco takového k dispozici pro tmux, ale byobu udělal můj .screenrc jen hrstkou řádků. Podívejte se na tento rychlý článek o byobu a screenshotech. Stránka projektu byob popisuje název pocházející z japonského výrazu pro dekorativní vícepanelové obrazovky, které slouží jako oddělovače skládacích místností. Také pouhé spuštění nepoškodí nastavení obrazovky, takže to můžete bezpečně vyzkoušet. Jakmile zahájíte relaci pomocí byobu, můžete se k ní volně připojit pomocí screen a stále neztratit žádné úpravy provedené pomocí byobu (použijte ji pouze pro počáteční vyvolání). Jeho dvě hlavní výhody jsou:

  • Spouští obrazovku pomocí několika stavových řádků s užitečnými informacemi
  • Poskytuje mnoho klávesových zkratek pro snadnější přístup k funkcím obrazovky

Nepoužívám část keybindings, ale rozhodně považuji stavové lišty za užitečné.

Také může být užitečné Screen Vs tmux odkaz. Myslím, že většina z toho je již zmíněna již existujícími odpověďmi.

18
haridsv

Největší rozdíl v mém použití byl v tom, že v Gnu Screen můžete rozdělit snímky pouze horizontálně, zatímco v Tmuxu můžete rozdělit horizontálně i vertikálně. To je druh pohyblivého cíle, i když, jak zde říkám, že vertikální rozdělení dělá cestu do obrazovky .

Jinak je to o bytě.

17
Eli Frey

Jednou velkou nevýhodou pro screen je, že není aktivně vyvíjen. stránky chyb mají téměř 200 nepřiřazených položek, které se vracejí po 5 letech.

tmux má také některé otevřené problémy, ale mnohem méně, a je aktivněji podporován.

12
Harold

Drench vyvolává zajímavý bod - výchozí chování připojení dvakrát ke stejné relaci se u tmux liší. Pokud se však chcete připojit dvakrát a mít nezávislý pohled na okna v této relaci - začněte tmux pomocí

tmux new-session -t <session name>

Tím vytvoříte novou relaci a připojíte okna z již existující relace. Pokud jste svou první relaci nepojmenovali, můžete ji přidat pomocí 'přejmenování relace'.

12
Rikard Anglerud

tmux je novější a několik dalších funkcí.

Zjistil jsem, že dobré použití závisí na dobrém nastavení.

Pro editaci používám vi (vim) (Ruby on Rails) a je zde několik věcí, které by měly fungovat dobře.

Zde je můj soubor ~/.tmux.conf se spoustou užitečných nastavení:

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

Dovolím si doplnit jeden rozdíl:

tmux je založený na ncurses, zatímco obrazovka nekreslí další prvky. Pokud někdo používá emulátor terminálu, který podporuje rolování, dostane rolování pomocí obrazovky, ale ne pomocí tmux (alespoň ve výchozí konfiguraci). Totéž platí pro vyhledávání a podobné funkce.

8
Maciej Piechotka

Měl jsem potíže se získáním obrazovky pro podporu utf-8 a 256 barev, ale tmux vyšel z krabice.

6
zvolkov