tmux
Ich konnte es nun doch nicht bleiben lassen und hab mir kurz tmux angeschaut. Also Splitting ist wesentlich simpler als in screen (unter Screen finde ich das ganze eigentlich doch noch recht umständlich…aber intensiv angeschaut hab ich’s auch nicht mit screen, um ehrlich zu sein…).
Ich bin ja kompletter tmux/screen Anfänger, aber ich denke, dass es meinen Workflow ziemlich beeinträchtigen wird in Zukunft.
eine neue Session starten:
tmux [new -S [SESSIONNAME]]
auch hier ist der Sessionname nicht zwingend, es reicht auch nur die einfach die Eingabe von tmux, um eine Session zu starten
vorhandene Sessions auflisten
tmux ls
auf vorhandene Session verbinden
Wenn nur eine Session läuft, reicht tmux a (oder tmux at oder tmux attach)
tmux a
Bei mehreren Sessions kann mit -t den Sessionnamen mitgeben
tmux a [-t SESSIONNAME]
andere Shortcuts
C-b c neues Sessionfenster
C-b [Fensternummer] Fensterwechsel
C-b d tmux “aushängen” (reattach mit screen a)
C-b , Fenstertitel umbenennen
C-b ‘ Fensterwechsel durch Eingabe des Titels / Fensternummer
C-b w Fensterliste anzeigen (sehr geil; mit Preview!)
C-b % horizontal splitten
C-b “ vertikal splitten
C-b [Pfeiltasten] zwischen gesplitteten Fenstern wechselt man einfach mit den Pfeiltasten, ziemlich logisch (mit aktiver Maus kann natürlich auch diese verwendet werden)
C-b q Pane Nummern / IDs anzeigen (oder tmux list-panes [-a])
gibt man dann gleich die Pane-Nummer an, wechselt man zu diesem
C-b o durch Panes “switchen”
C-b ? Hilfe anzeigen
C-b x aktuelles Fenster schliessen
C-b :kill-session Alle Fenster schliessen und tmux beenden
Statusbar
Und mit echo $TERM findet man raus, ob man sich gerade in einer tmux-Session befindet oder nicht. Falls schon, sieht man es in der Ausgabe mit “screen…”, also identisch mit screen. Jedoch kommt tmux bereits von Beginn mit einer Statusbar daher (zumindest bei mir), also sieht man’s eigentlich auf Anhieb.
Was mir jedenfalls aufgefallen ist: lieber eine schlichte, einfache Statusbar – bei einer ssh Session kanns sonst mitunter etwas zäh sein, wenn unten immer wieder was blinkt und aufleuchtet (zb. Activity Monitor, etc). Sobald ich die angepasst hab (was mir dann zudem auch optisch besser gefallen hat), war tmux via ssh schon wesentlich bequemer/flüssiger zu bedienen.
Powerline
Weil Powerline derzeit grad so schick ist; unter Debian kann man das Package tmux-themepack-jimeh installieren (ab Testing) und dann eines der verschiedenen Themen in tmux sourcen
:source-file /usr/share/tmux/tmux-pack-jimeh/powerline/default/blue.tmuxtheme
Braucht man nicht zwingend das Package, das kann man auch unter Stable einfach klonen und so verwenden. Naja, ich verwende es zwar nicht, denke aber, dass viele das wollen, weil eben grad ‘in’…
Colors
ohne grosse Konfiguration gab’s bei mir schnell Fehler, bspw., wenn ich mutt mit meinem Farbschema gestartet hab (Terminal hat zuwenig Farben). Dies muss man tmux in der Config mitteilen:
set -g default-terminal "screen-256color"
Auf die config geh ich jetzt aber nicht weiter ein, da findet man hunderte Beispiele auf Github…
Panes resizen
Mit aktiver Maus können die Panes wie erwartet angepasst werden. Ansonsten kann man in den Eingabemodus wechseln und via command Anpassungen tätigen.
C-b : in den Eingabemodus wechseln
:resize-pane -D (Resizes the current pane down)
:resize-pane -U (Resizes the current pane upward)
:resize-pane -L (Resizes the current pane left)
:resize-pane -R (Resizes the current pane right)
:resize-pane -D 10 (Resizes the current pane down by 10 cells)
:resize-pane -U 10 (Resizes the current pane upward by 10 cells)
:resize-pane -L 10 (Resizes the current pane left by 10 cells)
:resize-pane -R 10 (Resizes the current pane right by 10 cells)
Panes verschieben
Manchmal möchte man ja auch Panes “verschieben”. Kein Problem:
C-b C o : Panes swappen
C-b Alt o : Panes swappen (wenn mehr als zwei Panes offen sind)
Das ganze geht aber auch mit C-b { bzw C-b }, was ja bequemer ist, da eine Taste weniger
Was jedoch auch sehr angenehm und cool ist:
C-b [Space] : mit der Leertaste kann man automatisch zwischen verschiedenen Layouts “toggeln”
kompletten Platz ausnutzen
Wenn ich bspw. mit dem Laptop auf eine Session am Desktop verbinde, ist natürlich das Verhältnis nicht identisch. Je nachdem werden dann Bereiche “ausgespart”:
Um dies zu unterbinden trennt man am besten alle anderen Connections, wenn man sich verbindet.
tmux attach -d [-t SESSIONNAME]
Natürlich kann man auch einfach attachen, dann muss man jedoch mit halt mit dem ungenutzen Platz “leben”. Eine andere Variante (hab ich aber selber nicht getestet): C-b Shift-D, um andere Sessions zu trennen. Anscheinend listet dann tmux alle Sessions und man kann auswählen, was man detachen will.
Copy/Paste
den Copymodus in tmux hab ich noch nicht wirklich geschnallt. Sofern jedoch die Maus aktiviert ist, kann man die Shift-Taste gedrückt halten und mit der linken Maustaste den Text markieren. Somit ist es bereits kopiert. Einfügen kann man mit gedrückter Shift-Taste und der mittleren Maustaste.
Keyboard only
Aber natürlich möchte ich so oft wie möglich auf die Maus verzichten. Das ist auch nicht weiter schwierig:
C-b [: in den Kopiermodus wechseln
Space: gewünschten Text mit der Leertaste markieren
Enter: Auswahl kopieren
Ganz cool ist es, wenn man den vi-mode aktiviert hat (setw -g mode-keys vi). Damit werden h,j,k,l zum navigieren aktiviert. Auch sonst sehr angenehm, da man sehr viele vim-Shortcuts anwenden kann…
vi-copy-Funktionen
wie man sieht, eigentlich viel bekanntes von vim her… damit kann man recht effizient Text kopieren
Zurück zu Einrückung ^
Auswahl löschen Escape
Auswahl kopieren Enter
Cursor nach unten j
Cursor links h
Cursor rechts l
Cursor nach unten L
Cursor zur Mitte M
Cursor nach oben H
Cursor up k
ganze Zeile löschen d
Ende der Zeile löschen D
Beginn der Zeile 0
Ende der Zeile $
gehe zu Zeile :
halbe Seite nach unten C-d
halbe Seite nach oben C-u
nächste Seite C-f
nächstes Wort w
Buffer einfügen p
vorherige Seite C-b
vorheriges Wort b
Quit Mode q
Scroll down C-Down oder J
Scroll up C-Up oder K
erneut suchen n
rückwärts suchen ?
vorwärts suchen /
Auswahl starten Space
Den kopierten Text kann man mittels C-b ] einfügen. Hier ist jedoch zu beachten, dass der kopierte Text nur innerhalb von tmux nutzbar ist. Um dies generell nutzen zu können, wäre glaub ich das Plugin tmux-yank nutzbar, kann aber nichts dazu sagen, da ich’s bisher noch nicht getestet hab.
Plugins
Es scheint, dass es recht viele Plugins (und auch einen entsprechenden Plugin Manager) für tmux gibt, jedoch bin ich noch nicht soweit
1 thought on “tmux”
tmux http://blog.datentraeger.li/?p=883
Comments are closed.