Eight Years of Neo/Vim-ing Got Me Here


Over 8 years of daily usage and I’m still surprised weekly with a new motion or capability.

In this issue, I’ll be sharing insights and tips on configuring Neovim, derived from my extensive experience. Let’s dive in!

Tips for Beginners (and Advanced Users!)

  1. Start Vanilla: Well not 100% vanilla, get yourself vim-sensible and start rocking VIm until you feel confident to move on. DO NOT copy other people’s config. If you must, make sure you understand every line! This issue is my attempt at sharing mine, and while you’re reading these lines, I’ve released a video going through everything if you want to go ever deeper.
  2. Use Kickstart.nvim: This setup by TJ Devries, a core Neovim maintainer, will get you started with essential IDE features, like LSPs, Telescope and all these Neovim goodies users can’t leave without. Get kickstart.nvim

Learnings from 8 Years of Neo/Vimming

I’ve been a Vim user for almost a decade 👨‍🦳.
These are the configurations and plugins I pretty much use daily, and would consider my baseline:

My keymaps Are simple custom bindings, like jj to escape and buffer manipulations. They make my editing faster, you can check them out, but bare in mind this is the most personal-preference-based config I have.

Core Plugins:
- LSP: I really don’t know how people code without these anymore. My LSPs
- Telescope: Hands down, the best plugin for Neovim, if you count in the speed added and the extensibility features it offers! My Telescope config
- Git: Instead of listing plugins, here’s video where I cover the what, why’s and how’s
- DAP: Debugging in Neovim, sounds fictional, but you can do it too!
- Lazy: My plugin manager of choice, removing friction, reducing loading times, and an overall great experience I never had with the alternatives. Lazy.nvimand a video I made about migrating to it.

Other Plugins are all listed here. Pay special attention to those starting with tpope and folke; the two godfathers of plugins 😉

A Configuration Blueprint

I used to run a 200 lines .vimrc. Since moving to lua a few years back, I created a maintainable strcuture:

- File Structure: I keep a main init.lua and a subdirectory named lua for mappings, editor options, and plugin configurations.
- Plugins: Separate files for each plugin under lua/plugins for easy access and tweaks. Everything’s referenced from my init.lua (or it doesn’t get loaded)

Noteworthy Plugins

Since Neovim is my editor of choice for text as well, I’m quite picky about how I organize things for writing blogposts, newsletters and other text based resources. I made a video about it but these are the main plugins use for text:
- Zen Mode + Twilight: Ideal for focused writing.
- Vim Pencil: Text wrapping.
- Markdown Preview: Because markdown is better looking in the browser :)
- GPT: Can’t end a list without at least mentioning one AI plugin, can I?

Final Thoughts

My Neovim configuration is a work in progress. At some point, one must admit this state is the new constant 🥲. Both because it’s constantly evolving to suit different needs, but also, I just can’t help it with ricing my system and environments (did I hear Nix?)

I hope you found it useful. Please reply with any feedback or questions.

Have a great weekend!

Whenever you’re ready, here’s how I can help you:

ESPRESSO FRIDAYS

Every once in a while I send hand picked things I've learned. Kind of like your filter to the tech internet. No spam, I promise!

Read more from ESPRESSO FRIDAYS

How DHH Solved Deploying to Production (with Open Source) Ever felt depressed by the sheer complexity of getting your application live and serving users? You’re not alone. But what if deploying to production, even (or especially) across multiple servers, could be straightforward and more importantly, free? That’s the reality DHH, the creator of Ruby on Rails and CTO of Basecamp & HEY, wanted to create, and he delivered with an open source tool called Kamal. DHH’s approach to technology always...

The UNDERRATED Open Source Powering My HomeLab This issue is brought to you by: Secure Your AI Future at Snyk Launch 2025 Join Snyk Launch to discover how to establish a foundation to build securely and confidently in the age of AI. Register for Snyk Launch 2025 (It’s Free!) Kestra, an open-source automation platform that's been a game-changer for my homelab and, frankly, could be for a lot more. It's one of those tools that flies under the radar for too many people, but packs so much...

He Made $64K Searching GitHub With A GENIUS Trick (using open source only) This issue is brought to you by: TestSprite is the Easiest AI Agent for Software Testing Ensure End-to-End Confidence in Your Software Quality. LEARN MORE This, is the story of how one individual, "Mr. B," leveraged a deep understanding of Git's less-explored features to uncover secrets in public repositories, earning over $64,000 💰. His "genius trick" wasn't about finding new tools, but about using existing Git...