Working on projects takes a lot of time. Time that we stare at a screen and type away, click buttons on GUIs and otherwise are immersed in our environment. Everything we do goes through some sort of toolset, some sort of imposed environment. The tools that we generally use have gotten bigger and bigger, meaning more customizations, more bloat, and more distractions. The time we spend in our tools mean that they should be carefully picked and we should take the time to properly set them up to assist us. If we trudge through defaults and put up with what we are given, are they really our tools or someone elses?

Vim

Over the past year I have moved more of my workflows to terminal applications. The largest move of this was to start using Vim to work on projects. The move at first was startling. By default many of the niceties that we attribute to IDE’s are not there. The GUI elements for navigation and searching are removed from us, and we are left alone in an editor that requires a learning curve to even effectively type in. Slowly I learned to use Vim and now prefer it. Some of this is due the ability to add plugins to bring back functionality that speeds up my workflows, but also the lack of excess distracting elements is extremely helpful.

tmux

tmux has been a huge help. For the work I have been doing recently, I have been working with Vim and Git directly in the project folder on a test server. This work has been done over ssh, and for various reasons that connection can sometimes break. tmux allows for a way to not only have multiple open applications and shells, but to recover from a lost connection. Over the past few months of using it, tmux has saved me a lot of frustration. As part of this, I have also done some small configurations to my tmux file. Most of the changes to my tmux configuration is from this article on Ham Vocke’s site.

Dotfiles

A large part of switching to a terminal based workflow for me has been to get my tools configured to work with and for me instead of me working with them. Vim and Tmux both have wonderful configuration supports. Due to this I have spent quite a bit of time tweaking my settings to get them to the way I like. This has included adding in plugins and a new color theme to Vim, and going back and forth on the use of Powerline for fancier representations of data in Tmux. If you want to take a look, my dotfiles can be found here.