Beginner tmux

I just finished my first week at my new job. I took the opportunity to learn a new technology that I’ll hopefully have fully integrated into my toolbox soon.

I’ve realized over the years that if I really want to learn and internalize something like a tool, I have to start at the very beginning. It takes a lot of discipline but I think the end result will be worth the effort.

That means not changing defaults, customizing shortcuts, or anything like that. I’m forcing myself to use vanilla tmux until I can open, detach, and reattach sessions with my eyes closed. To keep the scope of what I have to learn as small as possible, this is all I’ll be using tmux for, for at least the first few months.

As a reminder to myself, these are the commands I have to make second nature:

tmux new -s [name]           # create a new session
tmux det                     # detach from session
tmux ls                      # show session list
tmux a -t [name]             # attach to a session
tmux kill-session -t [name]  # kill a session

There is also a set of keyboard shortcuts that are useful to know in case I’m not in a shell context:

CTRL + b s                   # show session picker
CTRL + b d                   # detach from session

This is just the beginning. Features I’m looking forward to taking the time to learn after getting these basics down are:

Remote sessions

That last one looks to be very useful, especially now that I’ve switched to a Linux development machine from an OS X one. It means I’ll be able to do most of my work in my preferred environment, and have the flexibility to attach to a session on a local VM for build work.


Now read this

Using tig to cherry-pick across branches

If you know my dev style, you know that I love tig. For the past few years I’ve used it almost exclusively for one thing: staging/unstaging individual lines or chunks of code. For this task, tig is without peer. It is so good at it that... Continue →