Skip to content

Instantly share code, notes, and snippets.

@henrik
Created March 3, 2012 19:47
Show Gist options
  • Save henrik/1967800 to your computer and use it in GitHub Desktop.
Save henrik/1967800 to your computer and use it in GitHub Desktop.
tmux cheatsheet

tmux cheatsheet

As configured in my dotfiles.

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

In tmux, hit the prefix ctrl+b and then:

Sessions

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

Windows (tabs)

c           new window
,           name window
w           list windows
f           find window
&           kill window
.           move window - prompted for a new number
:movew<CR>  move window to the next unused number

Panes (splits)

%  horizontal split
"  vertical split

o  swap panes
q  show pane numbers
x  kill pane
⍽  space - toggle between layouts

Window/pane surgery

:joinp -s :2<CR>  move window 2 into a new pane in the current window
:joinp -t :1<CR>  move the current pane into a new pane in window 1

Misc

d  detach
t  big clock
?  list shortcuts
:  prompt

Resources:

Notes:

  • You can cmd+click URLs to open in iTerm.

TODO:

  • Conf copy mode to use system clipboard. See PragProg book.
@wainweb
Copy link

wainweb commented Jun 16, 2017

@GlitchModulus, hit the prefix ctrl+b then ?

@masious
Copy link

masious commented Aug 3, 2017

In the dotfiles of @henrik copy mode is set to work like the way it works in the vi. After C-b then v I can't start selecting my text. Does anyone have some similar problem?

@bzd111
Copy link

bzd111 commented Oct 29, 2017

Usefull

@vtiwari227
Copy link

Very handy, Thanks for this

Copy link

ghost commented Dec 18, 2017

Really appreciate the detailed explanation

Copy link

ghost commented Dec 18, 2017

Is there a way to reactivate the sessions in gdb dashboard especially when debugging?

@TroiSilver
Copy link

most handy tmux cheatsheet

@ishouvik
Copy link

Thank you very much! This was very helpful.

@volkflo
Copy link

volkflo commented Feb 23, 2018

Thanks!

@vpctorr
Copy link

vpctorr commented Mar 9, 2018

Helpful !
To start a detached command:
tmux new -d -s my-session 'command1; command2;'

@arbazkiraak
Copy link

Awesome , Thank you ~

@vishnu-venkatesh
Copy link

% horizontal split - I guess this means the two panes are horizontally placed relative to each other. The splitting line is vertical. You might want to make that more clear. Other than that, very nice cheat sheet.

@ishanSrt
Copy link

@dideler doesn't matter. Everything's raw in open source.

@markuz
Copy link

markuz commented May 19, 2018

I think a respawn-pane is missing here

@ryazwinski
Copy link

Dumb question, but I can't find/figure it: is there any way to focus input on just one pane and then return to the all-panes context?

@Apichai1976
Copy link

Thank you, it is useful.

@ovigia
Copy link

ovigia commented Oct 21, 2018

Is there a way to kill all windows in tmux?
In screen this was:
C-a,
but in tmux I find only to kill one single window, not all.
Thank.

EDIT:
Easy enough:
tmux kill-server
will kill all tmux windows and sessions, good enough for my purpose.

C+a k

@ninezero90hy
Copy link

ninezero90hy commented Nov 14, 2018

Thanks! 👍

@mossishahi
Copy link

Hi !

I have launched a process in a tmux using an app. Now I wanna know which version of the app is running, I don't remember that which directory I added to that tmux's PATH and so cannot understand which version is running. Is there any way to see a tmux path outside that?
[any other creative idea is welcome]

Thanks

@haydenflinner
Copy link

@yazanmonshed
Copy link

Hello Can you provide me with more details about tmux

@OddmarDam
Copy link

what does that <CR> means??

Carriage Return

@isaacaddis
Copy link

This needs far more details on it .... like for example renaming sessions

@r2evans
Copy link

r2evans commented Aug 27, 2019

For those that follow: this gist has not been revised since 2012.

Conversely, this version (of the same cheatsheat) appears to be a branch/copy of this one but has been updated several times (latest in 2015). While four years old isn't awesome, it's still more recent (and feature-full) than this gist.

@henrik, thanks for starting it many years ago! This is obviously helpful to many.

@davegallant
Copy link

davegallant commented Sep 23, 2019

This is either a fork of this gist or vice versa, but it's not obvious because it was duplicated instead of forked. So which is the original?

  • henrik created this gist on Mar 3, 2012.
  • MohamedAlaa created this gist on Jun 20, 2012.

It's possible to tell now. I don't remember what GitHub looked like in 2013. :)

@savolla
Copy link

savolla commented May 30, 2020

what does that <CR> means??

Enter key

@reventusth
Copy link

v useful ty ty

@yogendrajs
Copy link

Thanks so much! 💯

@trisha
Copy link

trisha commented Jun 5, 2023

% horizontal split - I guess this means the two panes are horizontally placed relative to each other. The splitting line is vertical. You might want to make that more clear. Other than that, very nice cheat sheet.

Agreed with this, when I hear "horizontal split" I expect that the split line is horizontal, that they're split across the horizon, or horizon-ally. But thank you so much for putting this together!

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