Vim and Tmux Workflow

I have been using Vim and Tmux for many years. Usually paired with SSHing into my remote servers, where I do most of my development.
Vim logo

Since 2013, I have been using Vim as my primary text editor for programming. I didn’t choose to use Vim because I enjoyed having to Google how to save and close my editor each time I used it.

In 2013, I worked as a tutor and technician at Miami Dade College. This meant that I had to be constantly moving between rooms, fixing computers, helping students, or assisting professors. But due to the nature of the job, it also meant that I had some down time and was always in front of one or many computers. Therefore, I used that down time to learning new programming languages, as well as setup and maintain my home server.

Due to the fact that I was never seated at a computer for very long, there was the issue where any code I was working on would get lost on the computer as soon as I had to relocate. I could have carried around a USB, and stored/worked from that. But I would too often forget about the plugged in USB and have to double back to retrieve it, or have it taken. Thankfully, since I was also learning to setup a LAMP server on a spare computer I had at home, I simply SSHed unto that and stored my work there.

Unfortunately, there aren’t many simple methods to retrieve an IDE from a webserver. This is where I began to learn Vim, not out of want, but out of necessity. On my website I had a link to download putty, which after downloaded, I would SSH to my server and begin working on what every little project I was working on at the time.

SSH, Vim, and Tmux workflow

I soon learned about screen and tmux, which completely changed how I was connecting and working on my projects. With Vim and Tmux, my desire for an IDE vanished and I felt like I had everything conveniently at my finger tips, and on the “cloud” (Cloud being the back office of my home). Over the years I have learned and added to my Vim and Tmux workflow by the use of .vimrc and .tmuxrc.

I have setup a Gitlab repo with my scripts as well as deployment scripts. I mostly use this when ever I spin up a VM. The Gitlab repo is linked below if you would like to look through my vim/tmux configurations. Also feel free to message me with any suggestions or configs of your own. A lot of my configuration additions were made due to suggestions from others, or options that others used that I liked.

I’ve grown so accustomed to the Vim key bindings, that I cant use a regular IDE without installing some sort of plugin that enables the Vim movement key bindings. For as rough as Vim’s learning curve was, I think it was definitely worth it. Vim’s key bindings feel super natural compared to how I used to frantically reach for the mouse when I wanted to insert/scroll through code.

1 thought on “Vim and Tmux Workflow

Comments are closed.