Tools That Support My Development Workflow

Osagie Godstand
By Osagie Godstand on Feb 28, 2025

My software development workflow consists of using the terminal on the left side of my screen and a browser on the right side to search for and learn new things on the internet, as well as to check for changes I made during my coding session when manually testing my APIs.

There are a lot of tools that enhance my development experience and workflow, such as Neovim, tmux, automation scripts, hot reloading for my Go frontends, and Spotlight Search for quickly finding and opening other development-related applications on my PC, like Postman and Docker Desktop. In this post, the focus will be on Neovim and tmux. I spend most of my development time in the terminal, thanks to Neovim and tmux. I will provide detailed explanantions of how these particular tools support my productivity and my reasons for choosing to use them.

What Are Neovim and Tmux?

Neovim is a Vim-based editor that can be configured for coding using the Lua programming language. It comes with a wide range of plugins including LSPs for various programming languages, along with many other features you would expect from IDEs like Goland or code editors like VSCode.

Tmux is a terminal multiplexer that allows you to create split panes and windows, meaning you do not need to open multiple terminals. Instead, you can perform multiple tasks within a single terminal window thanks to its features.

My Config: What's Included and Why

My workflow using Neovim and tmux is simple; it does not involve too many features or plugins. The Neovim plugin manager I currently use is lazy.nvim, and some of the key plugins and features that make my overall experience great in Neovim are lspconfig for syntax and semantic highlighting, the Telescope fuzzy finder for easily navigating and finding files, Undotree toggle for switching to previous branches of a file, Hover document, Goto definition, auto format, and nvim-cmp autocomplete. However, I do not use AI-based autocompletion like Copilot.

I also do not use the traditional `hjkl` keys for navigating text because the arrow keys feel more natural, though I might change that opinion in the future. The only improvement I would currently consider adding to my configuration is a debugger.

In Tmux, I use the windows feature. I initially learned to work with split panes I never really liked them, so I decided to try out the windows feature, which allows me to open multiple separate workspaces within a single session. This significantly improved my experience. Within a session, every task including Neovim runs in its own dedicated window, meaning I almost never have to leave Neovim during my coding sessions.

I recently added the TPM plugins, which enables me to save and restore sessions, allowing me to resurrect a session even after it gets killed. I find this especially useful when working on large projects.

Why I Use Neovim and Tmux

I started my programming journey with VSCode, and it was a good experience. However, I wanted a better developer workflow and experience. I desired a minimal setup that only did what I configured it to do, and I wanted a faster code editor that allow me to code without leaving the terminal.

One main reason I fully switched to Neovim was that VSCode on my old laptop was slower than on my MacBook M2. I realised that this was due to the amount of space and memory VSCode consumed and the limited processing power of my old laptop, which gave me even greater reason to make the full switch.

My journey from VSCode to Neovim and Tmux was not smooth. I had to learn Vim motions first, and then I attempted to configure Neovim by following Youtube tutorials multiple times with no prior knowledge, failing to get anywhere. However, I continued using Vim motions inside of VSCode until I truly understood what was required for a Neovim configuration that could replace my use of VSCode. Although the process was not straightforward, I can confidently say that my current Neovim configuration, along with Tmux, has exceeded my expectations.

To Conclude

What makes Neovim and tmux a great addition to my workflow is not just about the cool features and plugins but also the ability to configure them exactly how I want and create shortcuts that make my entire experience even better.