Tmux is a terminal multiplexer that has been around for a few years; doing a simple google search you will find some introductory articles.
There are quite a few plugins that create a seamless integration with vim
: tslime, vimux and slimux. People also use tmux extensively for remote pair programming.
Tmux is a nicer and more modern alternative to screen. Beside being actively mantained tmux is also extremely configurable and scriptable.
I discovered tmux only recently, mainly thanks to the Changelog show and the resulting buzz on the twittersphere. It was only a matter of time before a customized .tmux.conf
entered the realms of my dotfiles.
If you are a developer you work on text all day, and you might have a few script or long-running jobs executing in the shell. If that’s the case, it’s also very likely that you have to constantly switch between those applications.
You might not be aware of that, but constantly switching focus takes a toll on your brain, is a source of distraction, and is a major hindrance towards achieving what us developers crave, a state of mental performance called the flow.
If that is case you should know that adopting a workflow based on tmux can reduce a lot of that background stress.
The most common pattern that emerges, for example, is being able to keep opened, side by side in the same tmux window, two panes: one with the shell and the other with terminal vim.
In the next post I’ll describe how tmux helped me reduce a lot of the context switch that is major annoyance of mine while working, and a few configuration settings that make working with tmux a pleasure.