Skip to content

rht/eigen-neovim

Repository files navigation

eigen-neovim (formerly eigenvimrc)

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_default

Result

Most common Neovim config out of 2546 init.lua files

  1. vim.opt.mapleader = " " 35.39%
  2. vim.opt.number = true 21.41%
  3. vim.opt.maplocalleader = " " 19.29%
  4. vim.opt.termguicolors = true 16.30%
  5. vim.opt.shiftwidth = 4 15.83%
  6. vim.opt.tabstop = 4 15.55%
  7. vim.opt.ignorecase = true 15.04%
  8. vim.opt.relativenumber = true 14.93%
  9. vim.opt.expandtab = true 14.85%
  10. vim.opt.smartcase = true 14.06%
  11. vim.opt.mouse = "a" 13.67%
  12. vim.opt.signcolumn = "yes" 13.59%
  13. vim.opt.clipboard = "unnamedplus" 13.47%
  14. vim.opt.undofile = true 12.41%
  15. vim.opt.scrolloff = 10 12.29%
  16. vim.opt.cursorline = true 11.98%
  17. vim.opt.updatetime = 250 11.35%
  18. vim.opt.hlsearch = true 10.45%
  19. vim.opt.timeoutlen = 300 9.43%
  20. vim.opt.splitright = true 9.15%
  21. vim.opt.list = true 9.11%
  22. vim.opt.listchars = { tab = '» ', trail = '·', nbsp = '␣' } 8.64%
  23. vim.opt.splitbelow = true 8.64%
  24. vim.opt.breakindent = true 8.60%
  25. vim.opt.wrap = false 7.97%
  26. vim.opt.softtabstop = 4 7.97%
  27. vim.opt.showmode = false 7.50%
  28. vim.opt.have_nerd_font = true 6.72%
  29. vim.opt.inccommand = "split" 6.25%
  30. vim.opt.completeopt = "menuone,noselect" 5.89%
  31. vim.opt.swapfile = false 5.66%
  32. vim.opt.loaded_netrwPlugin = 1 5.46%
  33. vim.opt.smartindent = true 5.38%
  34. vim.opt.loaded_netrw = 1 5.18%
  35. vim.opt.incsearch = true 4.60%
  36. vim.opt.background = "dark" 4.52%
  37. vim.opt.colorcolumn = 80 4.44%
  38. vim.opt.laststatus = 3 4.24%
  39. vim.opt.backup = false 4.16%
  40. vim.opt.autoindent = true 4.12%
  41. vim.opt.base46_cache = vim.fn.stdpath "data" .. "/nvchad/base46/" 3.65%
  42. vim.opt.foldmethod = "expr" 3.46%
  43. vim.opt.hidden = true 2.75%
  44. vim.opt.encoding = "utf-8" 2.67%
  45. vim.opt.foldenable = true 2.55%
  46. vim.opt.confirm = true 2.55%
  47. vim.opt.undodir = "os.getenv("HOME") .. "/.vim/undodir"" 2.51%
  48. vim.opt.showmatch = true 2.40%
  49. vim.opt.python3_host_prog = "/usr/bin/python3" 2.36%
  50. vim.opt.smarttab = true 2.32%
  51. vim.opt.cmdheight = 1 2.32%
  52. vim.opt.foldlevel = 99 2.12%
  53. vim.opt.autoread = true 2.12%
  54. vim.opt.netrw_banner = 0 2.12%
  55. vim.opt.guifont = "JetBrains Mono" .. ":h" .. font_siz" 2.08%
  56. vim.opt.statusline = "%!v:lua.require('nvchad.statusline." .. config.ui.statusline.theme .. "').run()" 2.04%
  57. vim.opt.timeout = true 1.96%
  58. vim.opt.foldexpr = "nvim_treesitter#foldexpr()" 1.89%
  59. vim.opt.textwidth = 80 1.85%
  60. vim.opt.linebreak = true 1.81%
  61. vim.opt.backspace = "indent,eol,start" 1.77%
  62. vim.opt.netrw_winsize = 25 1.73%
  63. vim.opt.guicursor = "" 1.73%
  64. vim.opt.ruler = true 1.73%
  65. vim.opt.sidescrolloff = 8 1.69%
  66. vim.opt.showcmd = true 1.65%
  67. vim.opt.spell = true 1.65%
  68. vim.opt.conceallevel = 2 1.61%
  69. vim.opt.writebackup = false 1.61%
  70. vim.opt.netrw_browse_split = 0 1.57%
  71. vim.opt.winborder = "rounded" 1.53%
  72. vim.opt.wildmenu = true 1.53%
  73. vim.opt.wildmode = "longest:full,full" 1.45%
  74. vim.opt.foldlevelstart = 99 1.34%
  75. vim.opt.showtabline = 2 1.34%
  76. vim.opt.title = true 1.30%
  77. vim.opt.spelllang = "en_us" 1.30%
  78. vim.opt.fillchars = { eob = " " } 1.22%
  79. vim.opt.filetype = "xml" 1.14%
  80. vim.opt.nu = true 1.10%
  81. vim.opt.foldcolumn = 1 1.06%
  82. vim.opt.neovide_cursor_animation_length = 0 1.02%
  83. vim.opt.shiftround = true 1.02%
  84. vim.opt.loaded_perl_provider = 0 1.02%
  85. vim.opt.shell = "/bin/zsh" 1.02%

Colorscheme stat

  1. catppuccin 5.89%
  2. onedark 4.36%
  3. tokyonight-night 3.57%
  4. tokyonight 3.38%
  5. gruvbox 2.91%
  6. kanagawa 1.96%
  7. rose-pine 1.34%
  8. catppuccin-mocha 0.94%
  9. vscode 0.86%
  10. nightfox 0.63%
  11. dracula 0.63%
  12. gruvbox-material 0.63%
  13. habamax 0.47%
  14. material 0.39%
  15. nord 0.35%
  16. rose-pine-moon 0.35%
  17. ayu 0.35%
  18. solarized 0.31%
  19. tokyonight-storm 0.27%
  20. kanagawa-dragon 0.27%

Plugin stat

  1. nvim-treesitter/nvim-treesitter 4.87%
  2. nvim-lua/plenary.nvim 4.67%
  3. neovim/nvim-lspconfig 4.44%
  4. nvim-telescope/telescope.nvim 4.05%
  5. NvChad/NvChad 3.57%
  6. hrsh7th/nvim-cmp 3.53%
  7. hrsh7th/cmp-nvim-lsp 3.46%
  8. williamboman/mason.nvim 2.79%
  9. L3MON4D3/LuaSnip 2.67%
  10. nvim-tree/nvim-web-devicons 2.59%
  11. nvim-lualine/lualine.nvim 2.51%
  12. wbthomason/packer.nvim 2.44%
  13. lewis6991/gitsigns.nvim 2.44%
  14. saadparwaiz1/cmp_luasnip 2.20%
  15. williamboman/mason-lspconfig.nvim 2.20%
  16. hrsh7th/cmp-buffer 2.08%
  17. hrsh7th/cmp-path 2.00%
  18. tpope/vim-fugitive 1.81%
  19. numToStr/Comment.nvim 1.73%
  20. lukas-reineke/indent-blankline.nvim 1.69%
  21. windwp/nvim-autopairs 1.57%
  22. nvim-telescope/telescope-fzf-native.nvim 1.41%
  23. nvim-tree/nvim-tree.lua 1.37%
  24. folke/which-key.nvim 1.34%
  25. catppuccin/nvim 1.26%
  26. nvim-treesitter/nvim-treesitter-textobjects 1.18%
  27. rafamadriz/friendly-snippets 1.14%
  28. hrsh7th/cmp-cmdline 1.02%

Plot

Strangely it doesn't follow the power law distribution. Likely because some settings are highly correlated with the others. plot

Power law fit: y = 37.9 × x^(-0.56), R² = 0.869

Data

Last updated Dec 02 2025. Repository list is queried from GitHub Code Search API.

Query: filename:init.lua path:nvim

About

1 init.lua 1 vote

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published