A terminal multiplexer, much like screen.
Allows you to run multiple virtual terminals in a single terminal.
A few more features, but the big one is panes.
tmuxruns as a client-server.- A client can create & destroy sessions; connect to & disconnect from existing sessions.
- Multiple clients can connect to the same session (perhaps for pair programming).
A session can have many windows; only one window is shown at a time.
A window can be split into one or more panes.
In more recent versions of tmux, panes can be zoomed into.
tmux has a status line, which can be customised to show all sorts of stuff,
I have it show me my session name (to remind me what I'm doing), which windows
I have open, the date, and my battery charge.
It can be configured to update as often or as little as you like.
tmux can scroll, copy, and paste, although it's a bit fiddly.
Start scroll mode
<C-a> [ # I remapped the prefix from <C-b> to <C-a>
Scroll up/down with standard pager keys:
<C-u> # => One screen up
<C-d> # => One screen down
j/k # => One line down/up
Is a bit of a nightmare, but it can be tamed with some configuration.
<C-a> t
tmuxinator is a popular tool for automatically sending commands to a tmux
session, which can be useful for starting workspaces.
I don't use it.
vim-slime, which I used in my last presentation allows you to send commands
from a vim instance to tmux pane, which is handy.