The Terminal as My IDE
NOV 4, 2023
As a back-end developer I live in the terminal. This post covers the setup that finally gave me a fast, distraction-free environment — Vim, tmux, zsh, wezterm, and a handful of tools that made it all click.

In particular, I'll talk about how I use zsh with oh-my-zsh for a better command-line experience. I'll also cover how Vim has become a perfect replacement for a traditional IDE in my workflow. And I'll explain why wezterm has earned its place as my terminal emulator of choice, alongside a few other tools.
I used to work in editors like Sublime Text and Visual Studio Code. But I started running into performance issues from the accumulation of plugins and extensions. On top of that, finding the ideal configuration among so many options was always a struggle.
So I decided to give Vim a shot. At first it was frustrating — I even had to close the terminal a couple of times because I couldn't figure out how to quit Vim! I was so used to the shortcuts and workflows of other editors that memorizing all the new commands and normal-mode bindings felt like a real challenge. But after those initial battles, once I got into the modal editing mindset, the benefits became clear quickly. Vim is incredibly lightweight and fast. Keyboard shortcuts let me navigate and edit without ever touching the mouse. And the plugin ecosystem and customization options are enormous.
I set up Vim with essential plugins like NERDTree for file navigation and fzf for fast fuzzy search. I also installed a clean theme to minimize distractions. With keyboard shortcuts for everything, I can keep my hands on the keyboard and get more done in less time.
On top of that, Vim gives me a consistent development environment on any machine regardless of the operating system. Combined with tmux for managing multiple windows and panes, and zsh for a superior terminal experience, I feel like I've finally built my perfect setup.
While Vim isn't for everyone, for me it represents speed, efficiency, and flexibility — exactly what I was looking for as a developer. With the right configuration, Vim can be a lightweight, minimalist, and highly productive editor.
After a couple of years of use, I've added a few more tools that complement my Vim workflow really well. For example, tmux and tmuxinator let me manage multiple panes and sessions in the terminal. lazy-git and lazy-docker speed up Git and Docker tasks directly from the command line.
I've also significantly improved my zsh experience by installing oh-my-zsh, which gives me access to useful plugins like z for fast directory jumping, smart autocompletion, and themes. Other tools like bat, ripgrep, and fd are perfect for working with files and searches in the terminal.
The combination of all these tools gives me an agile, productive development environment entirely in the terminal. I can code, debug, version control, work with containers, and more — all without a GUI. The learning curve was worth it. I now have an efficient workflow optimized for productivity.
After a few years of refinement, I finally feel like I've achieved an environment that lets me make the most of every working hour. If you want tips on improving your own terminal setup, follow along — I'll keep sharing how I've optimized each of these tools.