I keep flip flopping between tmux and screen, and right now I'm back on the tmux kick. I've been doing some setup for a friend, and I want to make a hard copy of the session so he can see the commands that I've run. I know this is possible in screen, but can I do it with tmux? The man page doesn't seem to have anything related to hardcopy...
It's not as simple as in
screen, but it can be done with
save-buffer. The example below will copy the contents of
TARGET pane (or current pane if none is given) to the file
tmux capture-pane -t TARGET \; save-buffer -b 0 ~/tmux.hardcopy H
Optionally add it as a binding in
tmux.conf, escaping the ";" as necessary:
bind H capture-pane \; save-buffer -b 0 ~/tmux.hardcopy \; delete-buffer -b 0
As seen here.
Also, asciinema is a very nice terminal recorder (text only) that you can use with tmux (or any terminal) if you want to share online. It uploads to the asciinema site and gives a short link (which you can open with the "url" function in tmux).
It's very nice for tutoring, because beginners can follow the real-time typing more easily than a huge transcript.
It's on github: sickill/asciinema.
Using the answer above resulted in a "No buffer 0" error. Adding "-b 0" to the capture-pane command fixed that. I also added "-e" to the capture-pane command to preserve color output. I also added "-a" to the save-buffer command to append to the output file instead of overwriting.
Here's my answer:
bind-key h capture-pane -e -b 0 \; save-buffer -a -b 0 ~/tmux.hardcopy \; delete-buffer -b 0 \; display-message "~/tmux.hardcopy updated"