Over Christmas I was playing around with AstroNvim as I wanted to fix a couple of niggles with my NvChad setup and thought I’d write a post about what I use as my code editor day to day.
The Early Days
When I started building websites back in 1995, there weren’t many tools available for web development. But I did have use of Dreamweaver, which was a game-changer at the time. It helped me learn HTML and CSS quickly by allowing visual inspections of the site without needing to FTP files up to the host constantly.
Enter Sublime Text
After Dreamweaver, I transitioned to Sublime Text and stuck with it for years—right up to version 4. In fact, I think I was one of the few people who actually paid for a license!
I had everything set up exactly the way I wanted in Sublime, with snippets that let me create code blocks with the press of a key.
But when Sublime Text 4 came out, it broke a lot of my workflow. Configuring it felt like a headache. I had customized Sublime 2/3 years before and didn’t have the time to troubleshoot and replicate my setup.
Trying VS Code
After wrestling with Sublime Text 4, I decided to give VS Code a try. And... I really didn’t like it. To be fair, the tool itself was fine—it was me. I was too used to Sublime and resistant to change.
Exploring JetBrains
Next, I gave JetBrains a shot. I appreciated how PHPStorm was ready to use right out of the box. I also liked the JetBrains ecosystem of editors like RustRover, PyCharm, and IntelliJ IDEA. But there was one big drawback: switching between all those editors felt cumbersome. Each one needed constant updates, they all had to be configured seperatly and that maintenance added up.
When I worked at the university, I used PHPStorm and RustRover extensively, but there was always something about the JetBrains ecosystem that didn’t quite sit right with me. I couldn’t put my finger on it, there were several niggles, but I knew it wasn’t the right long-term solution.
Enter Vim
Now we come to Vim. Where do I even start? It's marmite, you either love it or loath it.
When I set up a new server, I always setup vim and use it on all my servers over the years, so I wasn’t entirely new to it—or so I thought. Once I started looking into Vim as a daily driver, I quickly realized the sheer number of options available. There were different versions, starter packs, and configurations to choose from.
I began where many people do: with Neovim and its Kickstarter configuration. It was a decent starting point, but I wasn’t familiar enough with the setup and configuration process to make it work the way I wanted.
After some time, I stumbled upon NvChad. This was an awesome starting point. Within a few hours of configuration (and many after), I got something reasonably close to what I needed. There was still a few quirks, but it was good enough for daily use. Once I got used to the keyflow process, it became a different beast.
Adding Tmux and Tmuxifier
While working on improving my workflow, I discovered Tmux and Tmuxifier. These tools were game-changers for my efficiency and workflow.
With Tmux, I could split my terminal into panes, windows, and workspaces. Using Tmuxifier, I wrote simple scripts to set up project configurations automatically. With just one script, I could launch multiple project sessions that stayed running in the background.
Each project session was tailored to my workflow. For example, I set up panes that divided my workspace into:
- Neovim
- Lazygit
- npm
- Terminal
Switching between panes or sessions became seamless with just 2–3 keystrokes.
Enter AstroNvim
Over Christmas, I decided to tackle some issues I’d been having with Neovim and PHP. That’s when I discovered AstroNvim.
So far, it seems to fit the bill for what I need. AstroNvim comes with an AstroCommunity that provides plugins for PHP, Laravel, and other languages I use regularly. It has a wealth of features beyond that, and it feels like a significant upgrade.
I’ll see how it performs in the long run, but I’m sure I’ll end up configuring it all over again at some point.
What’s Next
Over the next few weeks, I’ll be writing a quick introduction to my Neovim and Tmux setup, including step-by-step instructions on how to set it up on your machine. Stay tuned!