Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
tmux shortcuts & cheatsheet

tmux shortcuts & cheatsheet

start new:

tmux

start new with session name:

tmux new -s myname

attach:

tmux a  #  (or at, or attach)

attach to named:

tmux a -t myname

list sessions:

tmux ls

kill session:

tmux kill-session -t myname

Kill all the tmux sessions:

tmux ls | grep : | cut -d. -f1 | awk '{print substr($1, 0, length($1)-1)}' | xargs kill

In tmux, hit the prefix ctrl+b (my modified prefix is ctrl+a) and then:

Sessions

:new<CR>  new session
s  list sessions
$  name session

Windows (tabs)

c  create window
w  list windows
n  next window
p  previous window
f  find window
,  name window
&  kill window

Panes (splits)

%  vertical split
"  horizontal split

o  swap panes
q  show pane numbers
x  kill pane
+  break pane into window (e.g. to select text by mouse to copy)
-  restore pane from window
⍽  space - toggle between layouts
<prefix> q (Show pane numbers, when the numbers show up type the key to goto that pane)
<prefix> { (Move the current pane left)
<prefix> } (Move the current pane right)
<prefix> z toggle pane zoom

Sync Panes

You can do this by switching to the appropriate window, typing your Tmux prefix (commonly Ctrl-B or Ctrl-A) and then a colon to bring up a Tmux command line, and typing:

:setw synchronize-panes

You can optionally add on or off to specify which state you want; otherwise the option is simply toggled. This option is specific to one window, so it won’t change the way your other sessions or windows operate. When you’re done, toggle it off again by repeating the command. tip source

Resizing Panes

You can also resize panes if you don’t like the layout defaults. I personally rarely need to do this, though it’s handy to know how. Here is the basic syntax to resize panes:

PREFIX : resize-pane -D (Resizes the current pane down)
PREFIX : resize-pane -U (Resizes the current pane upward)
PREFIX : resize-pane -L (Resizes the current pane left)
PREFIX : resize-pane -R (Resizes the current pane right)
PREFIX : resize-pane -D 20 (Resizes the current pane down by 20 cells)
PREFIX : resize-pane -U 20 (Resizes the current pane upward by 20 cells)
PREFIX : resize-pane -L 20 (Resizes the current pane left by 20 cells)
PREFIX : resize-pane -R 20 (Resizes the current pane right by 20 cells)
PREFIX : resize-pane -t 2 20 (Resizes the pane with the id of 2 down by 20 cells)
PREFIX : resize-pane -t -L 20 (Resizes the pane with the id of 2 left by 20 cells)

Copy mode:

Pressing PREFIX [ places us in Copy mode. We can then use our movement keys to move our cursor around the screen. By default, the arrow keys work. we set our configuration file to use Vim keys for moving between windows and resizing panes so we wouldn’t have to take our hands off the home row. tmux has a vi mode for working with the buffer as well. To enable it, add this line to .tmux.conf:

setw -g mode-keys vi

With this option set, we can use h, j, k, and l to move around our buffer.

To get out of Copy mode, we just press the ENTER key. Moving around one character at a time isn’t very efficient. Since we enabled vi mode, we can also use some other visible shortcuts to move around the buffer.

For example, we can use "w" to jump to the next word and "b" to jump back one word. And we can use "f", followed by any character, to jump to that character on the same line, and "F" to jump backwards on the line.

   Function                vi             emacs
   Back to indentation     ^              M-m
   Clear selection         Escape         C-g
   Copy selection          Enter          M-w
   Cursor down             j              Down
   Cursor left             h              Left
   Cursor right            l              Right
   Cursor to bottom line   L
   Cursor to middle line   M              M-r
   Cursor to top line      H              M-R
   Cursor up               k              Up
   Delete entire line      d              C-u
   Delete to end of line   D              C-k
   End of line             $              C-e
   Goto line               :              g
   Half page down          C-d            M-Down
   Half page up            C-u            M-Up
   Next page               C-f            Page down
   Next word               w              M-f
   Paste buffer            p              C-y
   Previous page           C-b            Page up
   Previous word           b              M-b
   Quit mode               q              Escape
   Scroll down             C-Down or J    C-Down
   Scroll up               C-Up or K      C-Up
   Search again            n              n
   Search backward         ?              C-r
   Search forward          /              C-s
   Start of line           0              C-a
   Start selection         Space          C-Space
   Transpose chars                        C-t

Misc

d  detach
t  big clock
?  list shortcuts
:  prompt

Configurations Options:

# Mouse support - set to on if you want to use the mouse
* setw -g mode-mouse off
* set -g mouse-select-pane off
* set -g mouse-resize-pane off
* set -g mouse-select-window off

# Set the default terminal mode to 256color mode
set -g default-terminal "screen-256color"

# enable activity alerts
setw -g monitor-activity on
set -g visual-activity on

# Center the window list
set -g status-justify centre

# Maximize and restore a pane
unbind Up 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

Resources:

Notes:

Changelog:

Request an Update:

We Noticed that our Cheatsheet is growing and people are coloberating to add new tips and tricks, so please tweet to me what would you like to add and let's make it better!

@ravoori

This comment has been minimized.

Show comment Hide comment
@ravoori

ravoori Apr 17, 2013

Under the Panes section, shouldn't the 'o' key correspond to switch panes and not swap panes?

ravoori commented Apr 17, 2013

Under the Panes section, shouldn't the 'o' key correspond to switch panes and not swap panes?

@goatfig

This comment has been minimized.

Show comment Hide comment
@goatfig

goatfig Apr 20, 2013

% is vertical split
" is horizontal

Great cheatsheet!!!

goatfig commented Apr 20, 2013

% is vertical split
" is horizontal

Great cheatsheet!!!

@ehellman

This comment has been minimized.

Show comment Hide comment
@ehellman

ehellman Apr 22, 2013

I still don't understand how to resize panes. The default prefix is C-b, then what?

" PREFIX : resize-pane -R (Resizes the current pane right) " , I don't get it. Can anyone help? :)

I still don't understand how to resize panes. The default prefix is C-b, then what?

" PREFIX : resize-pane -R (Resizes the current pane right) " , I don't get it. Can anyone help? :)

@nickdtodd

This comment has been minimized.

Show comment Hide comment
@nickdtodd

nickdtodd Apr 24, 2013

@ehellman This confused me too. You need to do C-b then a colon. This will bring up a bar where you can write resize-panes with whatever flags you want. Good luck!

@ehellman This confused me too. You need to do C-b then a colon. This will bring up a bar where you can write resize-panes with whatever flags you want. Good luck!

@rawzone

This comment has been minimized.

Show comment Hide comment
@rawzone

rawzone Jul 1, 2013

In tmux-1.8 C-b z does a zoom/maximize of active pane (kind of like your Maximize and restore a pane thingy, i guess).

rawzone commented Jul 1, 2013

In tmux-1.8 C-b z does a zoom/maximize of active pane (kind of like your Maximize and restore a pane thingy, i guess).

@MohamedAlaa

This comment has been minimized.

Show comment Hide comment
@MohamedAlaa

MohamedAlaa Aug 11, 2013

@goatfig Thanks for the comment I fixed the the pane horizontal and vertical shotcuts

Owner

MohamedAlaa commented Aug 11, 2013

@goatfig Thanks for the comment I fixed the the pane horizontal and vertical shotcuts

@MohamedAlaa

This comment has been minimized.

Show comment Hide comment
@MohamedAlaa

MohamedAlaa Aug 11, 2013

@ehellman as @nickdtodd explained the "PREFIX" is ctrl+b or depending on your tmux configurations i personally changed my prefix to be ctrl+a much faster :)

Owner

MohamedAlaa commented Aug 11, 2013

@ehellman as @nickdtodd explained the "PREFIX" is ctrl+b or depending on your tmux configurations i personally changed my prefix to be ctrl+a much faster :)

@todgru

This comment has been minimized.

Show comment Hide comment
@todgru

todgru Aug 16, 2013

Reload the tmux config file from shell:

$ tmux source-file ~/.tmux.conf

Or from tmux command line:

:source-file ~/.tmux.conf

todgru commented Aug 16, 2013

Reload the tmux config file from shell:

$ tmux source-file ~/.tmux.conf

Or from tmux command line:

:source-file ~/.tmux.conf
@Atcold

This comment has been minimized.

Show comment Hide comment
@Atcold

Atcold Nov 22, 2013

Awesome! Thanks indeed for these tips!

Atcold commented Nov 22, 2013

Awesome! Thanks indeed for these tips!

@anthonybrown

This comment has been minimized.

Show comment Hide comment
@anthonybrown

anthonybrown Dec 8, 2013

Nice!

Nice!

@bernardr

This comment has been minimized.

Show comment Hide comment
@bernardr

bernardr Dec 29, 2013

Awesome! Thanks!

Awesome! Thanks!

@MohamedAlaa

This comment has been minimized.

Show comment Hide comment
@MohamedAlaa

MohamedAlaa Dec 31, 2013

@todgru I personally have in my .tmux.conf

    unbind r
    bind r source-file ~/.tmux.conf; display "Reloaded"

this way when i use the PREFIX + r it loads

Owner

MohamedAlaa commented Dec 31, 2013

@todgru I personally have in my .tmux.conf

    unbind r
    bind r source-file ~/.tmux.conf; display "Reloaded"

this way when i use the PREFIX + r it loads

@joestringer

This comment has been minimized.

Show comment Hide comment
@joestringer

joestringer Feb 6, 2014

Resizing down seems to require the "-D" option for me (tmux-1.6):

PREFIX : resize-pane -D 20 (Resizes the current pane down by 20 cells)

Resizing down seems to require the "-D" option for me (tmux-1.6):

PREFIX : resize-pane -D 20 (Resizes the current pane down by 20 cells)
@kocsenc

This comment has been minimized.

Show comment Hide comment
@kocsenc

kocsenc Feb 10, 2014

Use it every day. Amazing Cheatsheet

kocsenc commented Feb 10, 2014

Use it every day. Amazing Cheatsheet

@jtanmay

This comment has been minimized.

Show comment Hide comment
@jtanmay

jtanmay Mar 14, 2014

thanks! helped a lot :)

jtanmay commented Mar 14, 2014

thanks! helped a lot :)

@tdoumas

This comment has been minimized.

Show comment Hide comment
@tdoumas

tdoumas Mar 21, 2014

Thank you! Very useful

tdoumas commented Mar 21, 2014

Thank you! Very useful

@bradleyankrom

This comment has been minimized.

Show comment Hide comment
@bradleyankrom

bradleyankrom Jun 1, 2014

Looks like the cheat sheet link is dead :( http://cheat.errtheblog.com/s/tmux/

Looks like the cheat sheet link is dead :( http://cheat.errtheblog.com/s/tmux/

@MohamedAlaa

This comment has been minimized.

Show comment Hide comment
@MohamedAlaa

MohamedAlaa Jun 3, 2014

thanks @bradleyankrom I removed the link to the cheat :)

Owner

MohamedAlaa commented Jun 3, 2014

thanks @bradleyankrom I removed the link to the cheat :)

@cig0

This comment has been minimized.

Show comment Hide comment
@cig0

cig0 Jun 20, 2014

Running tmux 1.8, same behaviour as described by @joestringer:
"Resizing down seems to require the "-D" option for me"

Btw, nice list to have at hand :)

cig0 commented Jun 20, 2014

Running tmux 1.8, same behaviour as described by @joestringer:
"Resizing down seems to require the "-D" option for me"

Btw, nice list to have at hand :)

@benoptimus

This comment has been minimized.

Show comment Hide comment
@benoptimus

benoptimus Jul 8, 2014

thank you for sharing this, very useful!! 👍

thank you for sharing this, very useful!! 👍

@rushiagr

This comment has been minimized.

Show comment Hide comment
@rushiagr

rushiagr Jul 12, 2014

Thanks. Useful. 👍

Thanks. Useful. 👍

@gavsim

This comment has been minimized.

Show comment Hide comment
@gavsim

gavsim Jul 14, 2014

Very useful, greatly appreciated.

gavsim commented Jul 14, 2014

Very useful, greatly appreciated.

@giangnguyennet

This comment has been minimized.

Show comment Hide comment
@giangnguyennet

giangnguyennet Jul 19, 2014

It's strange I can't resize the panes in tmux. For example to resize left a pane, I tried:

^b ^h
^b alt-<arrow-left>
^b ^<arrow-left>

This works

^b : resize-pane -L

but I prefer a shortcut to having to type too much.

Any ideas?

ps: I don't have ~/.tmux.conf file

It's strange I can't resize the panes in tmux. For example to resize left a pane, I tried:

^b ^h
^b alt-<arrow-left>
^b ^<arrow-left>

This works

^b : resize-pane -L

but I prefer a shortcut to having to type too much.

Any ideas?

ps: I don't have ~/.tmux.conf file

@fkenji

This comment has been minimized.

Show comment Hide comment
@fkenji

fkenji Aug 11, 2014

@ndgiang84 If you are on MacOS you can try this out: http://superuser.com/questions/660013/resizing-pane-is-not-working-for-tmux-on-mac

fkenji commented Aug 11, 2014

@ndgiang84 If you are on MacOS you can try this out: http://superuser.com/questions/660013/resizing-pane-is-not-working-for-tmux-on-mac

@hienvd

This comment has been minimized.

Show comment Hide comment
@hienvd

hienvd Aug 12, 2014

Thank for your tips.
Btw, how can I change the default PREFIX (CTRL+B) to another key?

hienvd commented Aug 12, 2014

Thank for your tips.
Btw, how can I change the default PREFIX (CTRL+B) to another key?

@Drive137

This comment has been minimized.

Show comment Hide comment
@Drive137

Drive137 Aug 12, 2014

@hlenvd you can I do
set-option -g prefix C-a
unbind C-b
bind-key C-a send prefix
in the tmux.config
source - http://robots.thoughtbot.com/a-tmux-crash-course

@hlenvd you can I do
set-option -g prefix C-a
unbind C-b
bind-key C-a send prefix
in the tmux.config
source - http://robots.thoughtbot.com/a-tmux-crash-course

@tooreht

This comment has been minimized.

Show comment Hide comment
@tooreht

tooreht Aug 17, 2014

Thank you for this awsome cheatsheet!

What about adding @rawzone's zoom command to the Panes section?

z toggle (zoom) active pane to full terminal size

tooreht commented Aug 17, 2014

Thank you for this awsome cheatsheet!

What about adding @rawzone's zoom command to the Panes section?

z toggle (zoom) active pane to full terminal size

@MohamedAlaa

This comment has been minimized.

Show comment Hide comment
@MohamedAlaa

MohamedAlaa Sep 19, 2014

Updated The following

  • Added the toggle zoom command
  • Added The Sync Panes trick

You ask for updated by sending me a tweet @MohammedAlaa

Owner

MohamedAlaa commented Sep 19, 2014

Updated The following

  • Added the toggle zoom command
  • Added The Sync Panes trick

You ask for updated by sending me a tweet @MohammedAlaa

@MohamedAlaa

This comment has been minimized.

Show comment Hide comment
@MohamedAlaa

MohamedAlaa Oct 25, 2014

Updated The following

  • Added kill all tmux sessions

You ask for updated by sending me a tweet @MohammedAlaa

Owner

MohamedAlaa commented Oct 25, 2014

Updated The following

  • Added kill all tmux sessions

You ask for updated by sending me a tweet @MohammedAlaa

@MrWonderful

This comment has been minimized.

Show comment Hide comment
@MrWonderful

MrWonderful Oct 28, 2014

I had a problem running your kill-all command as an alias, but I found this one worked well for me:

alias tmkill='while [ $? -ne 1 ]; do tmux kill-session; done'

I had a problem running your kill-all command as an alias, but I found this one worked well for me:

alias tmkill='while [ $? -ne 1 ]; do tmux kill-session; done'

@quizzmaster

This comment has been minimized.

Show comment Hide comment
@quizzmaster

quizzmaster Nov 5, 2014

To resize a pane down:

PREFIX : resize-pane -D 20 (Resizes the current pane down by 20 cells)

To resize a pane down:

PREFIX : resize-pane -D 20 (Resizes the current pane down by 20 cells)

@shrop

This comment has been minimized.

Show comment Hide comment
@shrop

shrop Dec 8, 2014

Best cheat sheet for tmux I have seen. Posted on http://shelldevel.net/post/104491784292/mohamedalaa-tmux-cheatsheet-markdown

shrop commented Dec 8, 2014

Best cheat sheet for tmux I have seen. Posted on http://shelldevel.net/post/104491784292/mohamedalaa-tmux-cheatsheet-markdown

@wbnns

This comment has been minimized.

Show comment Hide comment
@wbnns

wbnns Jan 10, 2015

Thanks for putting this together. :)

wbnns commented Jan 10, 2015

Thanks for putting this together. :)

@nooitaf

This comment has been minimized.

Show comment Hide comment
@nooitaf

nooitaf Jan 17, 2015

Show a list of the messages tmux displayed in the lower bar:

prefix + ~

nooitaf commented Jan 17, 2015

Show a list of the messages tmux displayed in the lower bar:

prefix + ~

@jacktasia

This comment has been minimized.

Show comment Hide comment
@jacktasia

jacktasia Feb 18, 2015

@MohamedAlaa I believe @ravoori is correct. It should be like this instead:

Panes (splits)

o   switch to next pane
C-o swap panes

It's easy to confuse these because if you accidentally keep holding control down from doing your prefix then you'll be doing swap instead of next.

@MohamedAlaa I believe @ravoori is correct. It should be like this instead:

Panes (splits)

o   switch to next pane
C-o swap panes

It's easy to confuse these because if you accidentally keep holding control down from doing your prefix then you'll be doing swap instead of next.

@rakgenius

This comment has been minimized.

Show comment Hide comment
@rakgenius

rakgenius Feb 23, 2015

I have problem switching between last used session. C-a L switches to last used window rather than last used session which is the same as C-a l. Is there a way to switch to last used session?

I have problem switching between last used session. C-a L switches to last used window rather than last used session which is the same as C-a l. Is there a way to switch to last used session?

@bobeirasa

This comment has been minimized.

Show comment Hide comment
@bobeirasa

bobeirasa Apr 19, 2015

I'm laughing for myself about the mouse support, like a children with a new lollipop, I just can't believe how AWESOME it is.

I'm laughing for myself about the mouse support, like a children with a new lollipop, I just can't believe how AWESOME it is.

@nladd

This comment has been minimized.

Show comment Hide comment
@nladd

nladd May 8, 2015

Thanks! Exactly what I needed

nladd commented May 8, 2015

Thanks! Exactly what I needed

@LukasMac

This comment has been minimized.

Show comment Hide comment
@LukasMac

LukasMac May 16, 2015

When in copy mode I find Shift + j and Shift + k very usefull: text scrolls up/down while maintaining cursor position

When in copy mode I find Shift + j and Shift + k very usefull: text scrolls up/down while maintaining cursor position

@VladSem

This comment has been minimized.

Show comment Hide comment
@VladSem

VladSem May 22, 2015

just type in terminal man tmux

VladSem commented May 22, 2015

just type in terminal man tmux

@zaynetro

This comment has been minimized.

Show comment Hide comment
@zaynetro

zaynetro Jul 16, 2015

Can anyone tell me how to edit current command in tmux? I use vi bindings and want to be able to edit the command I am currently specifying.

Can anyone tell me how to edit current command in tmux? I use vi bindings and want to be able to edit the command I am currently specifying.

@thuannvn

This comment has been minimized.

Show comment Hide comment
@thuannvn

thuannvn Jul 20, 2015

tks

tks

@justinjhendrick

This comment has been minimized.

Show comment Hide comment
@justinjhendrick

justinjhendrick Jul 28, 2015

Consider these edits? https://gist.github.com/justinjhendrick/51dcf569322675ceeacf

I changed "new window" to "create window", so that it's easier to remember.
I added "next window" and "previous window".

Consider these edits? https://gist.github.com/justinjhendrick/51dcf569322675ceeacf

I changed "new window" to "create window", so that it's easier to remember.
I added "next window" and "previous window".

@grahamg

This comment has been minimized.

Show comment Hide comment
@grahamg

grahamg Aug 3, 2015

Thanks for this great reference sheet Mohamed!

grahamg commented Aug 3, 2015

Thanks for this great reference sheet Mohamed!

@j0hnsmith

This comment has been minimized.

Show comment Hide comment
@j0hnsmith

j0hnsmith Sep 15, 2015

Great cheat sheet, something is missing...

"we set our configuration file to use Vim keys for moving between windows and resizing panes so we wouldn’t have to take our hands off the home row"

Can you add that?

Great cheat sheet, something is missing...

"we set our configuration file to use Vim keys for moving between windows and resizing panes so we wouldn’t have to take our hands off the home row"

Can you add that?

@fuzzyweapon

This comment has been minimized.

Show comment Hide comment
@fuzzyweapon

fuzzyweapon Sep 16, 2015

One thing you could do to support the growing collaboration is make this a repo instead of a gist.
This /will/ backfire for people who use gist ide plugins and tools to quickly access documentation (aka, use gists as a personal documentation platform), but you could easily setup a CI workflow based on webhooks that publishes to the gist when a PR is merged into the repo.

Then people can do PRs, submit requests via issues, report outdated information via issues, etc, however you wanted to handle it.

One thing you could do to support the growing collaboration is make this a repo instead of a gist.
This /will/ backfire for people who use gist ide plugins and tools to quickly access documentation (aka, use gists as a personal documentation platform), but you could easily setup a CI workflow based on webhooks that publishes to the gist when a PR is merged into the repo.

Then people can do PRs, submit requests via issues, report outdated information via issues, etc, however you wanted to handle it.

@chenqing

This comment has been minimized.

Show comment Hide comment
@chenqing

chenqing Sep 17, 2015

so nice

so nice

@ttpears

This comment has been minimized.

Show comment Hide comment
@ttpears

ttpears Oct 19, 2015

The kill all sessions didn't work for me, this does:
for sess in $(tmux ls | awk '{FS=":" ; print $1}' | sed 's/://g') ; do tmux kill-session -t $sess ; done

ttpears commented Oct 19, 2015

The kill all sessions didn't work for me, this does:
for sess in $(tmux ls | awk '{FS=":" ; print $1}' | sed 's/://g') ; do tmux kill-session -t $sess ; done

@retraut

This comment has been minimized.

Show comment Hide comment
@retraut

retraut Oct 22, 2015

Thx for that

retraut commented Oct 22, 2015

Thx for that

@gusgard

This comment has been minimized.

Show comment Hide comment
@gusgard

gusgard Nov 4, 2015

In Configurations Options. Tmux 2.1 dont support

  • setw -g mode-mouse off
  • set -g mouse-select-pane off
  • set -g mouse-resize-pane off
  • set -g mouse-select-window off

instead use:

*set -g mouse on

gusgard commented Nov 4, 2015

In Configurations Options. Tmux 2.1 dont support

  • setw -g mode-mouse off
  • set -g mouse-select-pane off
  • set -g mouse-resize-pane off
  • set -g mouse-select-window off

instead use:

*set -g mouse on

@Enverex

This comment has been minimized.

Show comment Hide comment
@Enverex

Enverex Nov 13, 2015

Creating a new pane is quite possibly one of the most important controls but I don't see the key commands to do it here?

Enverex commented Nov 13, 2015

Creating a new pane is quite possibly one of the most important controls but I don't see the key commands to do it here?

@ChiChou

This comment has been minimized.

Show comment Hide comment
@ChiChou

ChiChou Nov 15, 2015

@Enverex did you mean splitting current window into multiple panes? See Panes (splits)

ChiChou commented Nov 15, 2015

@Enverex did you mean splitting current window into multiple panes? See Panes (splits)

@dragon788

This comment has been minimized.

Show comment Hide comment
@dragon788

dragon788 Nov 19, 2015

@MohamedAlaa This sounds like a great set of exercises for shortcutfoo.com's tmux setup. Now that you can create your own exercises I may have to work off this list to expand my knowledge.

@MohamedAlaa This sounds like a great set of exercises for shortcutfoo.com's tmux setup. Now that you can create your own exercises I may have to work off this list to expand my knowledge.

@AbhimanyuAryan

This comment has been minimized.

Show comment Hide comment
@AbhimanyuAryan

AbhimanyuAryan Nov 22, 2015

Thanks.

Thanks.

@dautovri

This comment has been minimized.

Show comment Hide comment
@dautovri

dautovri Dec 23, 2015

Thank you!

Thank you!

@Ryan4021

This comment has been minimized.

Show comment Hide comment
@Ryan4021

Ryan4021 Dec 29, 2015

This is great, thanks!

This is great, thanks!

@marzk

This comment has been minimized.

Show comment Hide comment
@marzk

marzk Jan 13, 2016

+ break pane into window (e.g. to select text by mouse to copy) is error.

! Break the current pane out of the window.
tmux

marzk commented Jan 13, 2016

+ break pane into window (e.g. to select text by mouse to copy) is error.

! Break the current pane out of the window.
tmux

@FrozenBeard

This comment has been minimized.

Show comment Hide comment
@FrozenBeard

FrozenBeard Jan 25, 2016

I found this out by mistake, but doing CTRL+D during a tmux session kills it (Very helpful!)

I found this out by mistake, but doing CTRL+D during a tmux session kills it (Very helpful!)

@tiborsimon

This comment has been minimized.

Show comment Hide comment
@tiborsimon

tiborsimon Feb 1, 2016

PREFIX : resize-pane -t -L 20 (Resizes the pane with the id of 2 left by 20 cells)

Didn't you miss the pane id after the -t?

PREFIX : resize-pane -t -L 20 (Resizes the pane with the id of 2 left by 20 cells)

Didn't you miss the pane id after the -t?

@zjkiki

This comment has been minimized.

Show comment Hide comment
@zjkiki

zjkiki Feb 17, 2016

kill all sessions just use "killall tmux", it's quick :)

zjkiki commented Feb 17, 2016

kill all sessions just use "killall tmux", it's quick :)

@numist

This comment has been minimized.

Show comment Hide comment
@numist

numist Feb 24, 2016

Also useful: select-layout even-horizontal and select-layout even-vertical for when you've buggered your (one-dimensional) pane layout by resizing your terminal window.

numist commented Feb 24, 2016

Also useful: select-layout even-horizontal and select-layout even-vertical for when you've buggered your (one-dimensional) pane layout by resizing your terminal window.

@sminrana

This comment has been minimized.

Show comment Hide comment
@sminrana

sminrana Mar 5, 2016

Thanks for sharing this.

sminrana commented Mar 5, 2016

Thanks for sharing this.

@luofei2011

This comment has been minimized.

Show comment Hide comment
@luofei2011

luofei2011 Mar 9, 2016

kill all the tmux sessions.

for session in `tmux ls | grep : | cut -d. -f1 | awk '{print substr($1, 0, length($1)-1)}'`;do tmux kill-session -t ${session};done

kill all the tmux sessions.

for session in `tmux ls | grep : | cut -d. -f1 | awk '{print substr($1, 0, length($1)-1)}'`;do tmux kill-session -t ${session};done
@takacsmark

This comment has been minimized.

Show comment Hide comment
@takacsmark

takacsmark Mar 31, 2016

Thanks, great cheat sheet. I'm missing a basic shortcut to move between panes. Besides prefix + o you can use prefix + the arrow keys to move up, down, left, right from one pane to the other. It makes you more productive.

Thanks, great cheat sheet. I'm missing a basic shortcut to move between panes. Besides prefix + o you can use prefix + the arrow keys to move up, down, left, right from one pane to the other. It makes you more productive.

@easydevmixin

This comment has been minimized.

Show comment Hide comment
@easydevmixin

easydevmixin Apr 6, 2016

Just what I was looking for! Thanks!

I'd like to add, just in case a pane freezes out:

PREFIX : kill-pane -t <pane number>

Just what I was looking for! Thanks!

I'd like to add, just in case a pane freezes out:

PREFIX : kill-pane -t <pane number>

@coreydaley

This comment has been minimized.

Show comment Hide comment
@coreydaley

coreydaley Apr 10, 2016

This command did not work for me on tmux 1.8:
tmux a #
I had to use
tmux a -t #
To connect to a non-named session

This command did not work for me on tmux 1.8:
tmux a #
I had to use
tmux a -t #
To connect to a non-named session

@Flowdeeps

This comment has been minimized.

Show comment Hide comment
@Flowdeeps

Flowdeeps May 24, 2016

ctrl-b esc [1 to 5] moves your current panes to different layouts. Which I do all the time due to using IRSSI. Is there a way of setting your current layout configuration as default?

ctrl-b esc [1 to 5] moves your current panes to different layouts. Which I do all the time due to using IRSSI. Is there a way of setting your current layout configuration as default?

@ZeBigDuck

This comment has been minimized.

Show comment Hide comment
@ZeBigDuck

ZeBigDuck May 25, 2016

I added a function in .zshrc to be able to toggle between sessions :

function tmux_switch_session() {
  setxkbmap fr;
  xdotool keyup Alt_L && xdotool key "Control_L+b";
  xdotool type --clearmodifiers ":a -t $(tmux ls | grep : | cut -d: -f1 | sed -n $($(exit $(tmux ls | wc -l)!=$(tmux ls | grep -n attached | cut -d: -f1)) | print -rP '%(?:1p:$(($(tmux ls | grep -n attached | cut -d: -f1)+1))p)'))";
  xdotool key "KP_Enter";
}

zle -N tmux_switch_session;
bindkey "^[s" tmux_switch_session;

Now, just press Alt+s to go to next session
(note you have to change keyboard locale with your own locale)

Wasn't able to make a tmux shortcut (xdotool sends Ctrl+b, then ls, then Enter, then :...)

ZeBigDuck commented May 25, 2016

I added a function in .zshrc to be able to toggle between sessions :

function tmux_switch_session() {
  setxkbmap fr;
  xdotool keyup Alt_L && xdotool key "Control_L+b";
  xdotool type --clearmodifiers ":a -t $(tmux ls | grep : | cut -d: -f1 | sed -n $($(exit $(tmux ls | wc -l)!=$(tmux ls | grep -n attached | cut -d: -f1)) | print -rP '%(?:1p:$(($(tmux ls | grep -n attached | cut -d: -f1)+1))p)'))";
  xdotool key "KP_Enter";
}

zle -N tmux_switch_session;
bindkey "^[s" tmux_switch_session;

Now, just press Alt+s to go to next session
(note you have to change keyboard locale with your own locale)

Wasn't able to make a tmux shortcut (xdotool sends Ctrl+b, then ls, then Enter, then :...)

@ThisIsJohnBrown

This comment has been minimized.

Show comment Hide comment
@ThisIsJohnBrown

ThisIsJohnBrown Aug 11, 2016

Just want to reiterate @gusgard's comment. The mode for mouse is now simply :setw -g mouse on

Just want to reiterate @gusgard's comment. The mode for mouse is now simply :setw -g mouse on

@leanhtien

This comment has been minimized.

Show comment Hide comment
@leanhtien

leanhtien Aug 22, 2016

Thank you guy :)

Thank you guy :)

@Aminadav

This comment has been minimized.

Show comment Hide comment
@Aminadav

Aminadav Oct 10, 2016

Easier way to kill all sessions:

tmux ls | cut -d: -f1 | xargs -l1 tmux kill-session -t

Easier way to kill all sessions:

tmux ls | cut -d: -f1 | xargs -l1 tmux kill-session -t

@luoyuping

This comment has been minimized.

Show comment Hide comment
@luoyuping

luoyuping Oct 16, 2016

this is wrong , you should not treat the tmux session as a normal process,so 'kill' will not work

tmux ls | grep : | cut -d. -f1 | awk '{print substr($1, 0, length($1)-1)}' | xargs kill

this is wrong , you should not treat the tmux session as a normal process,so 'kill' will not work

tmux ls | grep : | cut -d. -f1 | awk '{print substr($1, 0, length($1)-1)}' | xargs kill

@emersonxsu

This comment has been minimized.

Show comment Hide comment
@emersonxsu

emersonxsu Nov 8, 2016

AminaG's solution is correct but luoyuping's killing sessions' way is not working on my remote devserver.

AminaG's solution is correct but luoyuping's killing sessions' way is not working on my remote devserver.

@grantcarthew

This comment has been minimized.

Show comment Hide comment
@grantcarthew

grantcarthew Nov 29, 2016

Why not make this a full repo rather than a gist? Then we can send in PRs.

Why not make this a full repo rather than a gist? Then we can send in PRs.

@mirzalazuardi

This comment has been minimized.

Show comment Hide comment
@mirzalazuardi

mirzalazuardi Dec 8, 2016

🍻 I trapped to this page when googled how to resize panes .this is very usefull. thanks alot

mirzalazuardi commented Dec 8, 2016

🍻 I trapped to this page when googled how to resize panes .this is very usefull. thanks alot

@ryran

This comment has been minimized.

Show comment Hide comment
@ryran

ryran Dec 22, 2016

Panes can be resized without ridiculous commands by using: PREFIX, Ctrl-arrow...
E.g.: Ctrl-b, Ctrl-UP,UP,UP,UP.

ryran commented Dec 22, 2016

Panes can be resized without ridiculous commands by using: PREFIX, Ctrl-arrow...
E.g.: Ctrl-b, Ctrl-UP,UP,UP,UP.

@lmj0011

This comment has been minimized.

Show comment Hide comment
@lmj0011

lmj0011 Dec 31, 2016

@ryran
thanks for that!

lmj0011 commented Dec 31, 2016

@ryran
thanks for that!

@nguyenduyhao1111

This comment has been minimized.

Show comment Hide comment
@nguyenduyhao1111

nguyenduyhao1111 Dec 31, 2016

Thanks you!

Thanks you!

@apurvagupta

This comment has been minimized.

Show comment Hide comment
@apurvagupta

apurvagupta Jan 30, 2017

Is there any way to identify which pane is running what? for example, I am running 10 servers in different pane then can I identify which pane is running what server ?

Is there any way to identify which pane is running what? for example, I am running 10 servers in different pane then can I identify which pane is running what server ?

@tony

This comment has been minimized.

Show comment Hide comment
@tony

tony Feb 16, 2017

(Note: I posted this to a couple of other gists related to tmux.)

I recently finished a book on tmux, The Tao of tmux. It's available to read on the web for free. The book includes a cheatsheet section, in addition to covering tmux from the ground up via its session, window and pane objects. I also go into some tricks for optimizing workflows in the world of the terminal. Please feel free to give it a look!

Tony

tony commented Feb 16, 2017

(Note: I posted this to a couple of other gists related to tmux.)

I recently finished a book on tmux, The Tao of tmux. It's available to read on the web for free. The book includes a cheatsheet section, in addition to covering tmux from the ground up via its session, window and pane objects. I also go into some tricks for optimizing workflows in the world of the terminal. Please feel free to give it a look!

Tony

@leotm

This comment has been minimized.

Show comment Hide comment
@leotm

leotm Mar 1, 2017

Kill all the tmux sessions: tmux ls | grep : | cut -d. -f1 | awk '{print substr($1, 0, length($1)-1)}' | xargs kill didn't work for me.

But killall tmux did the job.

leotm commented Mar 1, 2017

Kill all the tmux sessions: tmux ls | grep : | cut -d. -f1 | awk '{print substr($1, 0, length($1)-1)}' | xargs kill didn't work for me.

But killall tmux did the job.

@scutdk

This comment has been minimized.

Show comment Hide comment
@scutdk

scutdk Mar 18, 2017

Sync pane is what I am looking for, but it's not so intuitive. Just add a reminder: Sync pane is to duplicate input to any pane to all other panes in the same window (only for panes that are not in any special mode). Maybe can add this after the title so even first timer knows what it means.

One more note, sync pane mode doesn't work in vim. So only way to modify multiple files is to use sed instead. It's working, just only cursor in the main pane is blinking. :D

scutdk commented Mar 18, 2017

Sync pane is what I am looking for, but it's not so intuitive. Just add a reminder: Sync pane is to duplicate input to any pane to all other panes in the same window (only for panes that are not in any special mode). Maybe can add this after the title so even first timer knows what it means.

One more note, sync pane mode doesn't work in vim. So only way to modify multiple files is to use sed instead. It's working, just only cursor in the main pane is blinking. :D

@LovesTha

This comment has been minimized.

Show comment Hide comment
@LovesTha

LovesTha Mar 24, 2017

I can't split horizontal, " brings up a list of tmux screens for me, which is rather useless.

I can't split horizontal, " brings up a list of tmux screens for me, which is rather useless.

@cocampbe

This comment has been minimized.

Show comment Hide comment
@cocampbe

cocampbe Apr 25, 2017

Wholly cow! DO NO USE the kill all tmux sessions shortcut. Your sending tmux session IDs to the kill command. Use this instead.

tmux ls | awk -F: '{print $1}' | xargs -i tmux kill-session -t {}

Wholly cow! DO NO USE the kill all tmux sessions shortcut. Your sending tmux session IDs to the kill command. Use this instead.

tmux ls | awk -F: '{print $1}' | xargs -i tmux kill-session -t {}

@smithanag

This comment has been minimized.

Show comment Hide comment
@smithanag

smithanag Apr 28, 2017

How to search for a text in tmux window?

How to search for a text in tmux window?

@Siva-Karthi

This comment has been minimized.

Show comment Hide comment
@Siva-Karthi

Siva-Karthi May 19, 2017

Awesome

Awesome

@deavmi

This comment has been minimized.

Show comment Hide comment
@deavmi

deavmi May 26, 2017

So helpful.

deavmi commented May 26, 2017

So helpful.

@SeattleRex

This comment has been minimized.

Show comment Hide comment
@SeattleRex

SeattleRex Jun 10, 2017

'tmux kill-server' kills all sessions and gives you a fresh start

'tmux kill-server' kills all sessions and gives you a fresh start

@backwind1233

This comment has been minimized.

Show comment Hide comment
@backwind1233

backwind1233 Jun 12, 2017

very useful

very useful

@LMtx

This comment has been minimized.

Show comment Hide comment
@LMtx

LMtx Jun 16, 2017

@MohamedAlaa
hello, mouse section is outdated - you can update it from my fork

LMtx commented Jun 16, 2017

@MohamedAlaa
hello, mouse section is outdated - you can update it from my fork

@OmarMalik

This comment has been minimized.

Show comment Hide comment
@OmarMalik

OmarMalik Jun 20, 2017

When I have multiple tmux windows open and I resize one, it starts resizing all of them together. How do i disable this? This is on a mac btw.

When I have multiple tmux windows open and I resize one, it starts resizing all of them together. How do i disable this? This is on a mac btw.

@0xnurl

This comment has been minimized.

Show comment Hide comment
@0xnurl

0xnurl Jul 10, 2017

Thank you so much

0xnurl commented Jul 10, 2017

Thank you so much

@Shaddy

This comment has been minimized.

Show comment Hide comment
@Shaddy

Shaddy Aug 6, 2017

This is the bash-script I use when I want to kill all the sessions except the attached.

Kill all sessions except attached

tmux ls | awk '$1 gsub(":", "") {if (!/attached/) system("tmux kill-session -t " $1)}'

Not sure why the kill all script requires grep + cat + awk + xargs, I would write it as this.

Kill all sessions simplified

tmux ls | awk '$1 gsub(":", "") {system("tmux kill-session -t " $1)}'

Shaddy commented Aug 6, 2017

This is the bash-script I use when I want to kill all the sessions except the attached.

Kill all sessions except attached

tmux ls | awk '$1 gsub(":", "") {if (!/attached/) system("tmux kill-session -t " $1)}'

Not sure why the kill all script requires grep + cat + awk + xargs, I would write it as this.

Kill all sessions simplified

tmux ls | awk '$1 gsub(":", "") {system("tmux kill-session -t " $1)}'

@Atlas7

This comment has been minimized.

Show comment Hide comment
@Atlas7

Atlas7 Aug 20, 2017

I use this cheatsheet pretty much every single time I use a terminal! Life saver... !

Atlas7 commented Aug 20, 2017

I use this cheatsheet pretty much every single time I use a terminal! Life saver... !

@harpreetsc1992

This comment has been minimized.

Show comment Hide comment
@harpreetsc1992

harpreetsc1992 Sep 8, 2017

I think the options in the new tmux versions has changed.
For example:
set mouse on
turns all mouse options on.

harpreetsc1992 commented Sep 8, 2017

I think the options in the new tmux versions has changed.
For example:
set mouse on
turns all mouse options on.

@jobwat

This comment has been minimized.

Show comment Hide comment
@jobwat

jobwat Sep 28, 2017

When the window is stuck in a smaller dimension (due to a former session on a smaller screen):

:detach -a

jobwat commented Sep 28, 2017

When the window is stuck in a smaller dimension (due to a former session on a smaller screen):

:detach -a
@sedansvan

This comment has been minimized.

Show comment Hide comment
@sedansvan

sedansvan Oct 26, 2017

Kill all sessions except the one you're attached to:
tmux kill-session a

Kill all sessions:
tmux kill-server

Kill all sessions except the one you're attached to:
tmux kill-session a

Kill all sessions:
tmux kill-server

@jacobzlogar

This comment has been minimized.

Show comment Hide comment
@jacobzlogar

jacobzlogar Nov 28, 2017

@MohamedAlaa, can you change
+ break pane into window (e.g. to select text by mouse to copy)
to
! break pane into window (e.g. to select text by mouse to copy)

@MohamedAlaa, can you change
+ break pane into window (e.g. to select text by mouse to copy)
to
! break pane into window (e.g. to select text by mouse to copy)

@FireMario211

This comment has been minimized.

Show comment Hide comment
@FireMario211

FireMario211 Dec 3, 2017

This is an amazing cheatsheet! It really helped me on basics for what you can input to the tmux session!

This is an amazing cheatsheet! It really helped me on basics for what you can input to the tmux session!

@AbrarTapzo

This comment has been minimized.

Show comment Hide comment
@AbrarTapzo

AbrarTapzo Dec 12, 2017

After split pane vertical or horizontal I am not able to write on previous pane.
Suppose I am at pane A and suppose after split we have two panes of A -> A1 and A2
So I can put my commands on pane A2 but not on pane A1.
But i wanted to put commands on bot.
Any help ??

AbrarTapzo commented Dec 12, 2017

After split pane vertical or horizontal I am not able to write on previous pane.
Suppose I am at pane A and suppose after split we have two panes of A -> A1 and A2
So I can put my commands on pane A2 but not on pane A1.
But i wanted to put commands on bot.
Any help ??

@xinzweb

This comment has been minimized.

Show comment Hide comment
@xinzweb

xinzweb Dec 12, 2017

You can switch panes using prefix + o if you want to input again on A1.

xinzweb commented Dec 12, 2017

You can switch panes using prefix + o if you want to input again on A1.

@2E0PGS

This comment has been minimized.

Show comment Hide comment
@2E0PGS

2E0PGS Jan 7, 2018

pkill tmux is a far quicker way of killing all sessions than that long line of code.

2E0PGS commented Jan 7, 2018

pkill tmux is a far quicker way of killing all sessions than that long line of code.

@TommyJerryMairo

This comment has been minimized.

Show comment Hide comment
@TommyJerryMairo

TommyJerryMairo Jan 8, 2018

prefix + z can zoom in a particular pane now!

prefix + z can zoom in a particular pane now!

@Ahmed-Galal

This comment has been minimized.

Show comment Hide comment
@Ahmed-Galal

Ahmed-Galal Jan 22, 2018

it is helpful, Thanks 👍

it is helpful, Thanks 👍

@reqshark

This comment has been minimized.

Show comment Hide comment
@reqshark

reqshark Jan 29, 2018

cool but detach from the current session window shouldn't be hidding in misc category, that one is up there with tmux new -s myname in terms of the basic value-add of using tmux:

ctrl+b d

cool but detach from the current session window shouldn't be hidding in misc category, that one is up there with tmux new -s myname in terms of the basic value-add of using tmux:

ctrl+b d
@niceKamrul

This comment has been minimized.

Show comment Hide comment
@niceKamrul

niceKamrul Feb 24, 2018

Please emphasize the line bellow a little more.

"In tmux, hit the prefix ctrl+b (my modified prefix is ctrl+a) and then:"

Please emphasize the line bellow a little more.

"In tmux, hit the prefix ctrl+b (my modified prefix is ctrl+a) and then:"

@esbenboye

This comment has been minimized.

Show comment Hide comment
@esbenboye

esbenboye Mar 2, 2018

@apurvagupta
I'm not sure you can name your panes, but you can use [PREFIX] + , to rename your window and add set-option -g allow-rename off to your .tmux.conf (or whatever your config file is) to prevent tmux from renaming the window again.

@apurvagupta
I'm not sure you can name your panes, but you can use [PREFIX] + , to rename your window and add set-option -g allow-rename off to your .tmux.conf (or whatever your config file is) to prevent tmux from renaming the window again.

@jingpengw

This comment has been minimized.

Show comment Hide comment
@jingpengw

jingpengw Mar 15, 2018

is there any shortcut to split new panel to the left rather than the right?

is there any shortcut to split new panel to the left rather than the right?

@jingpengw

This comment has been minimized.

Show comment Hide comment
@jingpengw

jingpengw Mar 15, 2018

nvm, I can just swap panel after splitting

nvm, I can just swap panel after splitting

@slugsuresh

This comment has been minimized.

Show comment Hide comment
@slugsuresh

slugsuresh Mar 23, 2018

how do i unsplit panes (ctrl -A Q in screen equivalent ?)

how do i unsplit panes (ctrl -A Q in screen equivalent ?)

@jauharvp

This comment has been minimized.

Show comment Hide comment
@jauharvp

jauharvp Mar 26, 2018

I was confused with tmux and now happy to use.
Thank you bro

I was confused with tmux and now happy to use.
Thank you bro

@fadekrih

This comment has been minimized.

Show comment Hide comment
@fadekrih

fadekrih Apr 5, 2018

how do i unsplit panes (ctrl -A Q in screen equivalent ?)

I am using on https://goo.gl/EFwXkB

fadekrih commented Apr 5, 2018

how do i unsplit panes (ctrl -A Q in screen equivalent ?)

I am using on https://goo.gl/EFwXkB

@haythamdouaihy

This comment has been minimized.

Show comment Hide comment
@haythamdouaihy

haythamdouaihy Apr 16, 2018

great thanks! for the mouse support, edit .tmux.conf file:

set -g mouse on

great thanks! for the mouse support, edit .tmux.conf file:

set -g mouse on

@gregmark

This comment has been minimized.

Show comment Hide comment
@gregmark

gregmark Apr 19, 2018

Premier cheatsheet, first of all. Minor change suggestion, line 29:

tmux ls | awk -F: '{print $1}' | xargs kill

More than two pipes can be unsavory :)

Premier cheatsheet, first of all. Minor change suggestion, line 29:

tmux ls | awk -F: '{print $1}' | xargs kill

More than two pipes can be unsavory :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment