AstonJ

AstonJ

Which Neovim configuration distro do you use/recommend? (Poll)

Posting this to see if we can make things easier for people to get into Neovim. If you use Neovim and have a favourite distro please let us know!

  • You can only pick one - if you like more than one, please pick your favourite and tell us about the other/s in the thread!
  • If you use a custom configuration, please skip the poll (unless one of them is your favourite, in which case please vote for it) and if possible please let us know about your configuration in the thread and why you prefer it over a released distro (perhaps you could you share your configuration too?) If your own configuration heavily borrows from one of those listed below, you could, if you think it deserves it, place a vote for it.

Thanks!

What is your preferred Neovim distro?
  • Abstract
  • AstroNvim
  • CodeArt
  • CosmicNvim
  • Ecovim
  • kickstart
  • LazyVim
  • LunarVim
  • LVIM IDE
  • mini.nvim
  • NormalNvim
  • NvChad
  • NvPak
  • SpaceVim
  • Other publicly released distro - please say in thread!
0 voters

See post below for details…

Most Liked

frankdugan3

frankdugan3

My family uses a custom neovim config, based on Kickstarter. We’re slowly improving it as we learn more. Distros are great for inspiration, but I strongly encourage users to create their own config, and Kickstart is a good place to start from. Here’s a short summary of why I recommend this approach:

  • Vim is very unintuative, and it’s not just the modal editing. It’s very unix/posix oriented, and most distros tend to make it behave like VSCode/IDEs, which removes your incentive to learn the Vim way of doing things. Whenever something feels hard to do and you want a plugin to make it more like your old editor, try hard to find out if it’s an XY problem. As a bonus, getting better at Vim often makes you better at the CLI in general.
  • Distros tend to install a ton of plugins, and also have a lot of duplication to satisfy different user preferences. This increases the surface area of learning from Vim itself to also all the plugins and how they are configured by that distro. You also have to learn how to override/extend the distro’s config. It’s also harder to find free keybindings when you want to add/customize to your liking.
  • Distros also tie you to the probability of breaking changes, both to config and keybindings.
  • Neovim configured via Lua is actually very simple. I think it gets a reputation for being hard/time-consuming to configure simply because most try to force it into a full-blown IDE that behaves exactly like more familiar editors.

In general, I find it far easier to start with something very minimal and well thought-out (Kickstart), and then add/modify it at the speed of your learning. But I also run Arch and my first Linux was Gentoo, so… take that into consideration. :sweat_smile:

stefanluptak

stefanluptak

I tried switching to (Neo)Vim during the last almost 15 years several times and always failed. But this week it looks like is my first one when I am successfully using it almost exclusively.

What helped me was installing LazyVim and going through this book Chapter 1: Introduction and Installation - LazyVim for Ambitious Developers

Usually books focus on movements, text manipulation etc., but what I was missing was the real world scenarios like navigating files, projects, testing, debugging etc. This book address that pretty well. Highly recommended. :slightly_smiling_face:

sodapopcan

sodapopcan

Why people would not use a distro is the more interesting question for me. My answer is just that I love configuring and learning everything I can about my text editor—and maybe you will too! I’ve used Vim and only Vim for the past 15 years, I know a lot about it, and I’m very, very fast with it, even without LSP (though I have used LSP). I understand every line of my rather large vimrc and I write my own plugins. And contrary to popular belief, I do all of this in my hobby time, not “instead of getting things done” (though I’m not going to try and tell you I’ve never edited my vimrc on the clock before).

If you are interested in becoming really proficient in Vim, as @AndyL said, distros are a great starting point. If you just want to learn Vim motions and be done with it, Vim distros are great! Most other editors have a plugin for Vim motions if that’s what you want, too.

As for Vim vs NeoVim, I don’t want to start a flamewar. I did use NeoVim for a couple of months back when it had async and Vim didn’t. When Vim got async, I switched back. These days, NeoVim doesn’t offer anything compelling enough for me to switch. The only thing that makes me feel I should be using NeoVim is that it is the clear preference of the Elixir community. Otherwise, I’ll fully admit there is an emotional aspect to it and that the post-Bram Vim team is more interesting to me than the NeoVim community. Also, when it comes to scripting Vim, Vim9script is a much nicer language than Lua—as an Elixirist: DSLs FTW :wink:

AndyL

AndyL

With Neovim you can experiment with multiple distros and custom configurations using the NVIM_APPNAME environment variable. Here’s an explanation, courtesy of AnthropicAI:

NVIM_APPNAME is an environment variable in Neovim that defines the application name used for storing configuration files and runtime data. By default, it’s set to “nvim”, which is why Neovim typically looks for its configuration in ~/.config/nvim/ on Unix-like systems.

You can customize NVIM_APPNAME to maintain multiple separate Neovim configurations. For example, if you set:

export NVIM_APPNAME=custom_nvim

Neovim will then look for its configuration in ~/.config/custom_nvim/ instead of the default location. This is particularly useful for:

  1. Testing different configurations without affecting your main setup
  2. Maintaining separate configurations for different use cases (e.g., one for coding, another for writing)
  3. Trying out plugins or settings in isolation

For instance, you could start Neovim with a different configuration by running:

NVIM_APPNAME=test_config nvim

This feature was introduced to make it easier to manage multiple Neovim configurations without having to use symlinks or complex file management solutions.

jswanner

jswanner

You can profile where the time was spent while scrolling by using plenary.

With the file open in nvim using your normal setup:

:lua require'plenary.profile'.start("profile.log")
scroll the file
:lua require'plenary.profile'.stop()
:e profile.log

Where Next?

Popular in Polls Top

AstonJ
Curious whether you’re using wired or wireless to connect to your main working machine to the internet - if you have any specific reasons...
New
arcanemachine
Now that the results are in from the Tailwind-only poll, what do you think of the combination of Tailwind and daisyUI? poll
New
AstonJ
poll asdf Extendable version manager with support for Ruby, Node.js, Elixir, Erlang & more Manage multiple runtime versions with a ...
New
AstonJ
Following on from a conversation in the Tidewave thread - how useful do you think AI dev tools are right now and how useful do you think ...
New
AstonJ
Polls are a great way to easily get a snapshot of things, and we’ve had some really interesting polls over the years! Here are some tips...
New
Nezteb
poll The poll allows up to 2 votes for cases where people have a preferred tool for Elixir and a separate preferred tool for Erlang or th...
New
ryanswapp
I think it would be interesting to see how most people are using Phoenix in production. Do you use it as an API backend for a SPA? Or do ...
New
hst337
Do you use hot-reload/recompilation in production? Please note that this poll is only about BEAM’s internal features of runtime upgrades ...
New
AstonJ
How often do you buy a new dev machine? poll If there is any particular reason why you’ve settled on the frequency you have, please shar...
New
axelson
I’m working on VSCode ElixirLs syntax highlighting, and different themes support different syntax definitions. So I am curious about whic...
New

Other popular topics Top

Brian
What is the proper way to load a module from a file in to IEX? In the python world, doing something like this pretty standard: from ....
New
chrismccord
Phoenix 1.4.0 released Phoenix 1.4 is out! This release ships with exciting new features, most notably with HTTP2 support, improved deve...
688 30048 115
New
Tee
can someone please explain to me how Enum.reduce works with maps
New
sergio
I couldn’t find any guides that worked well with Phoenix 1.6.0 and esbuild. I hope this helps people test the waters and eases you into t...
New
malloryerik
Hi, this is for people who, like me, have had some friction using .html.heex templates in VSCode. The solution seems to be, in a hyphena...
New
polypush135
As many of you may have realized by now (sorry for all the posts here) I’ve been working on a db problem where I’m trying to aggregate a ...
New
mgjohns61585
Could someone help me? I'm making my first elixir program, number guessing game. I can't figure out how to convert the user's guess from ...
New
aadeshere1
I have a another noob question about loop. Since elixir is immutable, while loop is not directly possible. total = 10 while total != 0 ...
New
alice
Hey, Just curious what are the main benefits of Elixir compared to Clojure? When is Elixir more useful than Clojure and vice versa? Th...
New
Nvim
Elixir appears to be a superior language to Python. I don’t see any advantage of Python over Elixir. Are there any?
New

We're in Beta

About us Mission Statement