I recently started using tmux to keep up with my terminal sessions.
The Cheat Sheets
Before trying tmux, I was pretty familiar with screen and this cheat sheet of screen vs. tmux commands helped me get a lot of the basics in place.
There’s a widely known tmux gist that I still refer to often.
Copy and Paste
Starting with tmux threw a wrench in my copy and paste workflow right away. It still took some adjustment, but I updated my config as outlined in this post about using copy and paste from tmux on Mac OS.
Cursor Shape
Up until I started using tmux, I was using MacVim and got a bit used to how it changes the cursor when you are in insert mode. I found this trick that allows you to change the cursor shape with tmux, but after trying it for a while it ended up annoying me and I have up on having my MacVim style cursor in terminal Vim.
On My Big Screen
I have two 27" 1440p monitors at my desk, so when I have my 13" Retina MacBook Pro at my desk I actually forget that it’s a laptop. For my terminal that means I have a full-screen terminal in front of me most of the day.
As soon as I start a new session I split it once horizontall then once vertically. I resize the left pane, making it 30 columns wider. I have tmuxinator on my to-do list to learn as I’ve heard it can manage session settings like this.
On My Small Screen
When I’m out and about, working from the smaller screen on my laptop, there just isn’t enough room to split panes. I quickly change between windows in a tmux session using <c-b>, <c-w>
to list the windows and select the one I want. I’ve gotten really fast working this way and like certain things about it better than panes. It’s less distracting when I want to focus on one thing.
Rails
The biggest place I’ve picked up productivity from tmux is when doing Rails development. So often when working in Rails you need to keep an eye on several things at once. In one pane I’ll have Vim for editing, and I’ll often have 2-3 additional panes open containing a server, workers, log tailing, version control software and other things. The mass of information to keep up with when developing for Rails is well managed by tmux.