Recently, thanks to tmux, I have been enjoying the experience of having the majority of my development toolset consolidated within a single terminal window, which provides me with a common, distraction-free work environment.
During Rails development I work almost exclusively within this workspace, but for some reason I have been reluctant to leave MacVim behind and transition fully to a text-only environment. I’m not sure of the cause of this reluctance as I don’t take advantage of any of the extra features provided by MacVim so I eventually took the plunge and started to use terminal vim. I’ve really enjoyed the experience so far, but today I believe I have found a tool that will make it difficult to go back.
If you use vim and tmux then I would highly recommend installing vimux. It is a fantastic vim plugin that allows you to send commands from within vim to another tmux pane in the same window, creating it if it doesn’t exist. One use case of this is to execute the current spec file that you are working on in vim in a new tmux pane and then whilst it runs you are free to navigate the file within vim. That is just one example and if it is not a clear enough explanation of the potential of vimux may I suggest the readme which shows some great examples of how it can be used. However, I read the readme and wasn’t immediately convinced so do yourself a favour and just install it. Copy the keybindings into your .vimrc and just give it a try. It’s great!
As there aren’t any details in this post about my actual terminal configuration and tools, feel free to get in touch if you would like to know more about my current setup.