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

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...

Google's Git Killer Is INSANELY Better (and it's open source) You saw the title. Bold claim, right? "Insanely better"? Than Git? Git is the foundation of modern software development. It started back around 20 years ago, when Linus tried to build his first Linux kernel, and had enough of SVN. So Linus being Linus, he just went ahead and built his own. But what if the way we've always done version control isn't the only way, or even the best way anymore? That's the core idea behind Jujutsu (jj)...

You Need To Learn Docker Swarm! Ever felt like you're overcomplicating your container deployments? You might be. Today, we're diving into a Docker orchestrator that's likely already on your machine (run `docker service` for a second will ya?), but you're probably overlooking: Docker Swarm. The Underdog Orchestrator For years (for me, the past 11 years to be exact), the path has seemed to be either simple Docker Compose or the more, WAY MORE complex, Kubernetes. Compose is great for local...