This neovim configure file is highly optimized for the impatient. Super lazy loading + After syntax highlight rendering. Render multiple files with treesitter in less than 25ms with ~150 plugins installed (e.g. Open both util.lua(1686 loc) and lsp.lua(1538 loc) from neovim source code in 58.6ms) The setup set all plugins to be lazy loaded and trigger when it needed.
lua/modules/*/plugins.lua.lua/modules/spec.lua (used for common cond wrapping logic).nvim-cmp stack.fff.nvim, telescope-ast-grep.nvim, and shell-history.nvim.ray-x/copilot-agent.nvim plus github/copilot.vim, while several older experiments are now parked.The Packer config locates in branch Packer branch
It serves as my personal nvim setup. I am using it as my daily driver. The structure can be messy so it is not a setup for beginner
nvim Telescope preview:

nvim+kitty + cmp :

About 150 plugins and 14000 lines of lua and vim code.
bdeleteThe config can be used for pager
It has essential tools for git difftool
There are lots of amazing plugins, but the active branch has moved on quite a bit from the old packer / cmp / null-ls era.
Plug -> Dein -> Lua-Packer -> lazy.nvim -> vim.pack
I followed Glepnir https://github.com/glepnir/nvim dotfiles when I started this repo, but the current setup is no longer a direct descendant of that stack. The daily-driver branch now focuses on native pack loading, Neovim 0.12+ features, and a smaller number of heavily lazy-loaded plugin groups.
Completion / AI
Native Neovim completion via neovim/nvim-lspconfig + vim.lsp.completion, L3MON4D3/LuaSnip, windwp/nvim-autopairs, ray-x/lsp_signature.nvim, kristijanhusak/vim-dadbod-completion, github/copilot.vim, and ray-x/copilot-agent.nvim.
Search / navigation
nvim-telescope/telescope.nvim remains the main search UI, with telescope-fzf-native.nvim, telescope-file-browser.nvim, telescope-live-grep-args.nvim, telescope-heading.nvim, ray-x/telescope-ast-grep.nvim, and ray-x/shell-history.nvim. I also use dmtrKovalenko/fff.nvim, folke/flash.nvim, ThePrimeagen/harpoon, and stevearc/oil.nvim.
Language / IDE support
nvim-treesitter, ray-x/navigator.lua, ray-x/go.nvim, pmizio/typescript-tools.nvim, nvimtools/none-ls.nvim, mfussenegger/nvim-dap, rcarriga/nvim-dap-ui, nvim-telescope/telescope-dap.nvim, folke/lazydev.nvim, m-demare/hlargs.nvim, folke/trouble.nvim, benlubas/molten-nvim, Vigemus/iron.nvim, and metakirby5/codi.vim.

Markdown / notes / docs
ray-x/mkdn.nvim, MeanderingProgrammer/render-markdown.nvim, 3rd/image.nvim, jakewvincent/mkdnflow.nvim, ray-x/yamlmatter.nvim, OXY2DEV/markview.nvim, NFrid/due.nvim, and iamcco/markdown-preview.nvim.
UI / git / tools
ray-x/aurora, ray-x/starry.nvim, rebelot/heirline.nvim, luukvbaal/statuscol.nvim, akinsho/bufferline.nvim, nvim-tree/nvim-tree.lua, lewis6991/gitsigns.nvim, ray-x/forgit.nvim, rbong/vim-flog, tpope/vim-fugitive, esmuellert/codediff.nvim, akinsho/git-conflict.nvim, ray-x/sad.nvim, ray-x/viewdoc.nvim, folke/which-key.nvim, nvim-neotest/neotest, akinsho/toggleterm.nvim, ibhagwan/fzf-lua, and mikesmithgh/kitty-scrollback.nvim.
Editing helpers
gbprod/substitute.nvim, gbprod/yanky.nvim, kylechui/nvim-surround, mg979/vim-visual-multi, andymass/vim-matchup, echasnovski/mini.nvim, CKolkey/ts-node-action, mizlan/iswap.nvim, mbbill/undotree, and chaoren/vim-wordmotion.
Note: I tested it on Mac and linux, not sure about window
Clone the repo
Link nvim to $HOME/.config/
e.g.
ls ~/.config/nvim
~/.config/nvim -> /Users/rayx/github/dotfiles/nvim
On windows the config path is
C:\Users\your_user_name\AppData\Local\nvim
You need to link or replace above folder
Please install Nerd Fonts(I am using VictorMono) and kitty so font setting in GUI will work as expected
Startup nvim
Run :PackInstall in Neovim once after first startup to install missing plugins.
Useful commands:
:PackInstall install missing plugins:PackList list installed plugins:PackLoad <plugin> load an optional plugin manuallyNote:
The packages and data will be install to
~/.local/share/nvim
Please backup this folder if necessary
The setup targets Neovim 0.12+. For earlier releases, please check older branches. A patched nerd font is needed. Also if you start nvim from terminal, make sure it support nerdfont and emoji
Some of the plugin I am using depends on sqlite. By default sqlite was installed on MacOS. For other operating system, if you saw error message about sqlite, please following the instruction here to install sqlite
If you would like to sync to my branch, you can add your own setup in lua/overwrite folder.
You can put your own plugin specs in lua/modules/user/plugins.lua.
Module conventions:
completion, lang, ui, editor, tools, user).ft/event/cmd + dynamic cond function over startup-time gating.lua/modules/spec.lua helpers for shared spec behavior.fish + spaceship + kitty. It is cooool and faster. nvim+kitty split view:

You may need to install following tools to make best of the setup
These tools are good, but due to conflicts, bitrot, overlap, or simply not fitting my workflow anymore, they are parked here instead of being treated as part of the active setup.
hrsh7th/nvim-cmp, ALE, efm, null-lsolimorris/codecompanion.nvim, ravitemer/mcphub.nvim, carlos-algms/agentic.nvim, ThePrimeagen/99, cursortab/cursortab.nvim, zbirenbaum/copilot.luaepwalsh/obsidian.nvim, Furkanzmc/zettelkasten.nvim, preservim/vim-markdown, AckslD/nvim-neoclip.lua, jvgrootveld/telescope-zoxide, NTBBloodbath/rest.nvim, rhysd/vim-grammarous