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
Do you have any favourites? (You can pick up to three) poll See post below for details:
New
AstonJ
We had a thread here recently that mentioned webservers in PHP, and it got me curious about the options in the BEAM world and what everyo...
New
AstonJ
Do you use Dialyzer/Dialyxir in your Elixir projects? poll If you only use it in some of them, which ones? If you don’t use it, why not...
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
What is your primary dev OS? And is there any software you’d like to recommend that could make development easier? (Apart from the code e...
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
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
akoutmos
I was wondering how people are handling run-time configuration of their Plugs in their Phoenix applications as of today: poll I am also ...
New
AstonJ
The stereotype for ‘geeks’ is multiple monitors! But let’s see… poll
New

Other popular topics Top

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
yurko
Here are few pieces of (common) Linux knowledge that we use for reasonably small one server apps. We use Ubuntu but this should work for ...
New
senggen
Erlang/OTP 25 [erts-13.2.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] 15:22:35.803 [error] gen_event {lager_file_backend...
New
William
I would like to know that is there any online source for learning Phoenix Framework for building E-Commerce Store? Any advantage on build...
New
myronmarston
The Elixir Typespec docs show the following syntax for keyword lists in typespecs: # ... | [key: type] # keyword lis...
New
danschultzer
None of the current solutions worked well for me, so I went ahead and built a user management system from scratch. This project took far...
548 27727 240
New
stefanluptak
Hello everybody, usually, I use a 29" ultra-wide monitor for VSCode which can easily accomodate explorer (files panel) + file with code ...
New
TunkShif
This post is an instruction guide to help you setup your Neovim for Elixir development from scratch. It includes general information on h...
273 38985 115
New
aesmail
Hello guys, I have finally made it. I created an admin interface for a framework. It’s been on my todo list for years and with the curre...
New
vrod
I am using the Starship cross-shell prompt – it seems pretty nice, but I get some errors: [WARN] - (starship::utils): Executing command ...
New

We're in Beta

About us Mission Statement