2026年我的Neovim配置

从大学开始,我一直在折腾Neovim编辑器,它开源、快速、高度客制化,符合我对编辑器的一切要求。虽然代码没写多少,两三年也积累了不少设置,光是包管理器就从vim-plug换到packer.nvim再到lazy.nvim。这次趁着春节假期,简单整理一下配置。

其实我的编程需求很简单:

包管理器 我没有什么特殊需求,现在WSL中的Neovim的加载速度也还可以,所以目前没有理由再切换到Lazy.nvim,至于on-demand loading,作者是这么说的

A properly implemented Vim plugin should already load lazily without any help from a plugin manager (:help autoload). So there are few cases where these options actually make much sense. Making a plugin load faster is the responsibility of the plugin developer, not the user. If you find a plugin that takes too long to load, consider opening an issue on the plugin’s issue tracker.

所以让插件快速加载是插件作者的事,而不是包管理器应该干的事(虽然vim-plug也可以实现)。但是对于我没什么影响,毕竟我的启动速度已经够快,而且vim-plug也足够好用。

常用插件

Plug("nvim-lua/plenary.nvim")
Plug("ThePrimeagen/harpoon")
Plug("nvim-telescope/telescope.nvim", { ["version"] = "*" })
Plug("nvim-treesitter/nvim-treesitter", { ["build"] = ":TSUpdate" })
Plug("R-nvim/R.nvim")
Plug("vedantwpatil/manim-nvim")
Plug("neovim/nvim-lspconfig")
Plug("williamboman/mason.nvim")
Plug("williamboman/mason-lspconfig.nvim")
Plug("j-hui/fidget.nvim")
Plug("hrsh7th/cmp-nvim-lsp")
Plug("hrsh7th/cmp-buffer")
Plug("hrsh7th/cmp-path")
Plug("hrsh7th/cmp-cmdline")
Plug("hrsh7th/nvim-cmp")
Plug("L3MON4D3/LuaSnip", { ["tag"] = "v2.4.1", ["do"] = "make install_jsregexp" })
Plug("saadparwaiz1/cmp_luasnip")
Plug("rafamadriz/friendly-snippets")
Plug("stevearc/conform.nvim")
Plug("lervag/vimtex")
Plug("nvim-lualine/lualine.nvim")
Plug("lukas-reineke/indent-blankline.nvim")
Plug("numToStr/Comment.nvim")
Plug("tpope/vim-fugitive")
Plug("mbbill/undotree")
Plug("https://codeberg.org/andyg/leap.nvim")
Plug("tpope/vim-repeat")
Plug("windwp/nvim-autopairs")
Plug("iamcco/markdown-preview.nvim", { ["do"] = "cd app && npx --yes yarn install" })
Plug("epwalsh/obsidian.nvim")
Plug("img-paste-devs/img-paste.vim")
Plug("Shougo/unite.vim")
Plug("rafaqz/citation.vim")
Plug("blazkowolf/gruber-darker.nvim")

最主要的是telescope、lsp一些插件、vimtex,R.nvim,剩下的都是一些功能性的插件,比如leap用来快速移动,Comment用来注释代码,autopairs用来生成成对括号等。

至于Coc,它固然好用,安装方便,server直接CocInstall就能安装,但是有段时间r-languaguerserver一直报错(可能不是Coc的问题),所以我换成了Neovim内置的Lsp,感觉稳定一些。lsp我也没有下载多少,主要还是r-languageserver、rust_analyzer、basepyright和emmylua_ls

至于别的,基本是安装插件的基本配置,不再赘述。这样一套配置下来,基本可以满足我的编程、写作需求,所以我近期不打算再调整配置,把精力放在好好写程序和研究问题上。