In this post, I collect some useful tips for using Tmux.
In the following text, <prefix>
means the prefix key for Tmux. If you haven’t
changed it, it will Ctrl-b
by default.
Change layout#
To change the layout of panes in a Tmux windows, press <prefix><space>
. It
will change between different layouts.
We may also use command select-layout
(or selectl
for short) instead.
Possible layouts are: even-horizontal
, even-vertical
, main-horizontal
,
main-vertical
, tiled
.
Ref:
zoom a pane#
To temporarily zoom in and zoom out a pane, press <prefix>z
. It will toggle
the zoom state of current pane.
Create a pane that spans window width#
I have two vertical pane side by side in a window, and I want to create a new pane above these two panes, which will span the entire window width. Essentially, I want to change from the following layout:
+--------------+--------------+
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
+--------------+--------------+
to the below layout:
+-----------------------------+
| |
+--------------+--------------+
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
+--------------+--------------+
By default, split-window
command only spans the width of current pane. We can
use the -f
option to make the new pane span the entire window width. The help
for -f
says that:
-f – create new pane spanning full window width or height
To make the new pane created above, we need to use -b
option:
-b – create new pane left of or above target pane
Combining the two options, we can use the following command to create what we want:
# run the command after pressing <prefix>
:split-window -fbv
Similarly, if we have two pane one on the other, we want to create a new pane, and get the following layout:
+-----------------+-----------+
| | |
| | |
| | |
+-----------------+ |
| | |
| | |
| | |
+-----------------+-----------+
we can use the following command:
:split-window -fh
Ref:
swap two panes#
To swap two panes in Tmux, first we need to check their index: press <prefix> + q
to show the pane index. Then we can use the tmux command swap-pane
to swap
the two panes (tmux command mode are activated by pressing <prefix>
, followed
by :
). For example, if we want to swap pane 0 with pane 2, use the following
command:
swap-pane -s 0 -t 2
Ref:
equalize two panes#
To make two panes have the same width in side by side position, press <prefix> Alt-1
or run command select-layout even-horizontal
. To make two panes have
the same height and in top-down position, press <prefix> Alt-2
or run command:
select-layout even-vertical
.
Ref: