TODO: create phylogenetic tree of vimrcs
This script analyzes Neovim Lua configurations hosted on GitHub and returns the most commonly used settings. To see the old version analyzed on vimrc's, go to the old/ folder.
See USAGE.md if you want to reproduce the result. The "voting" process may iterate as follows:
def vote(default):
init_lua = people_curate_their_init_lua()
sleep(a_month)
new_default = most_common_50_percent(init_lua)
if new_default != default:
return vote(new_default)
else:
return new_defaultMost common Neovim config out of 2546 init.lua files
vim.opt.mapleader = " "35.39%vim.opt.number = true21.41%vim.opt.maplocalleader = " "19.29%vim.opt.termguicolors = true16.30%vim.opt.shiftwidth = 415.83%vim.opt.tabstop = 415.55%vim.opt.ignorecase = true15.04%vim.opt.relativenumber = true14.93%vim.opt.expandtab = true14.85%vim.opt.smartcase = true14.06%vim.opt.mouse = "a"13.67%vim.opt.signcolumn = "yes"13.59%vim.opt.clipboard = "unnamedplus"13.47%vim.opt.undofile = true12.41%vim.opt.scrolloff = 1012.29%vim.opt.cursorline = true11.98%vim.opt.updatetime = 25011.35%vim.opt.hlsearch = true10.45%vim.opt.timeoutlen = 3009.43%vim.opt.splitright = true9.15%vim.opt.list = true9.11%vim.opt.listchars = { tab = '» ', trail = '·', nbsp = '␣' }8.64%vim.opt.splitbelow = true8.64%vim.opt.breakindent = true8.60%vim.opt.wrap = false7.97%vim.opt.softtabstop = 47.97%vim.opt.showmode = false7.50%vim.opt.have_nerd_font = true6.72%vim.opt.inccommand = "split"6.25%vim.opt.completeopt = "menuone,noselect"5.89%vim.opt.swapfile = false5.66%vim.opt.loaded_netrwPlugin = 15.46%vim.opt.smartindent = true5.38%vim.opt.loaded_netrw = 15.18%vim.opt.incsearch = true4.60%vim.opt.background = "dark"4.52%vim.opt.colorcolumn = 804.44%vim.opt.laststatus = 34.24%vim.opt.backup = false4.16%vim.opt.autoindent = true4.12%vim.opt.base46_cache = vim.fn.stdpath "data" .. "/nvchad/base46/"3.65%vim.opt.foldmethod = "expr"3.46%vim.opt.hidden = true2.75%vim.opt.encoding = "utf-8"2.67%vim.opt.foldenable = true2.55%vim.opt.confirm = true2.55%vim.opt.undodir = "os.getenv("HOME") .. "/.vim/undodir""2.51%vim.opt.showmatch = true2.40%vim.opt.python3_host_prog = "/usr/bin/python3"2.36%vim.opt.smarttab = true2.32%vim.opt.cmdheight = 12.32%vim.opt.foldlevel = 992.12%vim.opt.autoread = true2.12%vim.opt.netrw_banner = 02.12%vim.opt.guifont = "JetBrains Mono" .. ":h" .. font_siz"2.08%vim.opt.statusline = "%!v:lua.require('nvchad.statusline." .. config.ui.statusline.theme .. "').run()"2.04%vim.opt.timeout = true1.96%vim.opt.foldexpr = "nvim_treesitter#foldexpr()"1.89%vim.opt.textwidth = 801.85%vim.opt.linebreak = true1.81%vim.opt.backspace = "indent,eol,start"1.77%vim.opt.netrw_winsize = 251.73%vim.opt.guicursor = ""1.73%vim.opt.ruler = true1.73%vim.opt.sidescrolloff = 81.69%vim.opt.showcmd = true1.65%vim.opt.spell = true1.65%vim.opt.conceallevel = 21.61%vim.opt.writebackup = false1.61%vim.opt.netrw_browse_split = 01.57%vim.opt.winborder = "rounded"1.53%vim.opt.wildmenu = true1.53%vim.opt.wildmode = "longest:full,full"1.45%vim.opt.foldlevelstart = 991.34%vim.opt.showtabline = 21.34%vim.opt.title = true1.30%vim.opt.spelllang = "en_us"1.30%vim.opt.fillchars = { eob = " " }1.22%vim.opt.filetype = "xml"1.14%vim.opt.nu = true1.10%vim.opt.foldcolumn = 11.06%vim.opt.neovide_cursor_animation_length = 01.02%vim.opt.shiftround = true1.02%vim.opt.loaded_perl_provider = 01.02%vim.opt.shell = "/bin/zsh"1.02%
- catppuccin 5.89%
- onedark 4.36%
- tokyonight-night 3.57%
- tokyonight 3.38%
- gruvbox 2.91%
- kanagawa 1.96%
- rose-pine 1.34%
- catppuccin-mocha 0.94%
- vscode 0.86%
- nightfox 0.63%
- dracula 0.63%
- gruvbox-material 0.63%
- habamax 0.47%
- material 0.39%
- nord 0.35%
- rose-pine-moon 0.35%
- ayu 0.35%
- solarized 0.31%
- tokyonight-storm 0.27%
- kanagawa-dragon 0.27%
- nvim-treesitter/nvim-treesitter 4.87%
- nvim-lua/plenary.nvim 4.67%
- neovim/nvim-lspconfig 4.44%
- nvim-telescope/telescope.nvim 4.05%
- NvChad/NvChad 3.57%
- hrsh7th/nvim-cmp 3.53%
- hrsh7th/cmp-nvim-lsp 3.46%
- williamboman/mason.nvim 2.79%
- L3MON4D3/LuaSnip 2.67%
- nvim-tree/nvim-web-devicons 2.59%
- nvim-lualine/lualine.nvim 2.51%
- wbthomason/packer.nvim 2.44%
- lewis6991/gitsigns.nvim 2.44%
- saadparwaiz1/cmp_luasnip 2.20%
- williamboman/mason-lspconfig.nvim 2.20%
- hrsh7th/cmp-buffer 2.08%
- hrsh7th/cmp-path 2.00%
- tpope/vim-fugitive 1.81%
- numToStr/Comment.nvim 1.73%
- lukas-reineke/indent-blankline.nvim 1.69%
- windwp/nvim-autopairs 1.57%
- nvim-telescope/telescope-fzf-native.nvim 1.41%
- nvim-tree/nvim-tree.lua 1.37%
- folke/which-key.nvim 1.34%
- catppuccin/nvim 1.26%
- nvim-treesitter/nvim-treesitter-textobjects 1.18%
- rafamadriz/friendly-snippets 1.14%
- hrsh7th/cmp-cmdline 1.02%
Strangely it doesn't follow the power law distribution. Likely because some settings are highly correlated with the others.

Power law fit: y = 37.9 × x^(-0.56), R² = 0.869
Last updated Dec 02 2025. Repository list is queried from GitHub Code Search API.
Query: filename:init.lua path:nvim