We have been using tmux a lot at Udacity, and it is terrific for remote pair programming.
I learned about tmux years ago, but my use of it has waxed and waned depending on circumstance.
At Udacity right now, we have a developer in Toronto, another in Chicago, and then the rest of us bounce around between Mountain View, San Francisco and wherever we live. tmux lets us work on the same code together, which is a godsend.
If you’ve never used tmux, it serves two primary functions. (Actually, it probably serves a lot of functions, but I use it for two functions.)
One, tmux allows me to open multiple panes in a terminal. So instead of having to switch back and forth between terminal tabs, or open and close a file to get back to the command line and run it, I can just divide the terminal in two. I leave my file editor (vim) on one half of the page and my command-line on the other. A keystroke lets me bounce back and forth.
But the real value of tmux is in its other function — pair programming. Two different developers, working in different parts of the world, can log into a machine, attach to the same tmux session, and pair program. When Cameron’s in Chicago and I’m in California, we can both type into the same vim editor at the same time. I love it.