====== tmux ======
Bei ''tmux'' handelt es sich um einen Terminal-Multiplexer, ähnlich wie ''screen'', mit dem innerhalb eines Terminalfensters verschiedene virtuelle Terminalsitzungen erzeugt und verwaltet werden können. Dabei ist es möglich, die Verbindung zu Sitzungen zu trennen ("detach") und wieder aufzunehmen ("attach"). ''tmux'' arbeitet in einer Server-Client Struktur und erlaubt farbliche Darstellung mittels ''ncurses'', horizontales und vertikales aufteilen des Fensters, ist über die ''tmux.conf'' oder zur Laufzeit anpassbar, lässt sich über Skripte steuern und vieles mehr.
FIXME
* https://gist.github.com/MohamedAlaa/2961058
* https://tmuxcheatsheet.com/
===== Kopieren & Einfügen =====
Um in einer ''tmux''-Session etwas zu kopieren, muss in den Kopieren-Modus gewechselt werden. Im Folgenden gehe ich von den vi Keybindings aus, die beispielsweise über die ''.tmux.conf'' mit
set-window-option -g mode-keys vi
gesetzt werden, oder innerhalb von ''tmux'' dynamisch mit dem selben Befehl. Als Präfix für ''tmux'' gehe ich hier vom Standard Strg+b aus, was entsprechend der eigenen Konfiguration angepasst werden muss.
- Den Kopieren-Modus mit Strg+b und [ starten
- Den Cursor zum Beginn des zu kopierenden Textes bewegen
- Mit Space die Auswahl beginnen
- Mit den Pfeiltasten oder den vi Befehlen den gewünschten Text markieren
- Zum Kopieren Enter drücken
- Den kopierten Text mit Strg+b und ] einfügen
Der in den Buffer kopierte Text kann innerhalb von ''tmux'' nach einem Strg+b mit dem Befehl '':show-buffer'' angezeigt werden. Enter beendet die Anzeige. Der Buffer kann auch direkt in eine Datei gespeichert werden. Dazu wird wieder mit Strg+b in den Kontrollmodus gewechselt und mit
:save-buffer file.txt
wird der Buffer abgespeichert.
Alternativ kann der in den Buffer kopierte Text auch auch außerhalb der ''tmux''-Session verwendet werden. Verlässt man ''tmux'' mit beispielsweise Strg+b und d, kann mit einem ''tmux show-buffer'' der kopierte Text im Terminal angezeigt werden. Er kann aber auch mit
tmux save-buffer file.txt
direkt, wie in ''tmux'' selbst, in eine Datei gespeichert werden.
===== Buffer verwalten =====
In ''tmux'' können mehrere Buffer verwendet werden, nicht nur der aktuelle wie oben erwähnt. Innerhalb von ''tmux'' können die Buffer nach einem Wechsel von Strg+b in den Kontrollmodus mit # angezeigt werden, die Kurzform von '':list-buffers''. Mit Enter wird die Anzeige verlassen. Einen bestimmten Buffer kann man sich mit '':show-buffer -b '' anzeigen lassen, wobei der Name vor dem jeweiligen Buffer-Inhalt vor dem Doppelpunkt steht. Mit '':save-buffer -b file.txt'' nach dem Wechsel mit Strg+b kann ein bestimmter Buffer abgespeichert werden. Löschen kann man sie mit '':delete-buffer -b '' oder alternativ statt des Namens die Nummer des Buffers, beginnend mit 1 für den ersten Buffer: '':delete-buffer -b 1''.
Die Befehle funktionieren auch außerhalb der ''tmux''-Session, so können beispielsweise mit ''tmux show-buffers'' alle Buffer im Terminal angezeigt werden. Ein spezieller Buffer kann sich so auch gezielt mit
tmux save-buffer -b file.txt
in einer Datei speichern lassen.
Eine einfache Variante, einen bestimmten Buffer als aktuellen auszuwählen, ist es, innerhalb von ''tmux'' nach Strg+b mit dem Befehl '':choose-buffer'' eine Liste aller Buffer zu öffnen. So wird im oberen Teil des ''tmux''-Fensters eine mit Pfeiltasten navigierbare Liste aller Buffer angezeigt. Im unteren Fensterteil wird dabei jeweils der Name des Buffers mit dem Inhalt darunter angezeigt. So kann mit Enter ein bestimmter Buffer ausgewählt werden und mit den zuvor erwähnten Befehlen beispielsweise eingefügt oder abgespeichert werden.
{{tag>linux tmux}}