Neovim
由于对新奇玩意的喜好,在Vim以及NeoVim中我选择了neovim进行折腾,采用全lua配置,因为完全没有体验过vim所以也无从比较,仅将配置过程记录如下
本体安装
neovim的使用环境是win11 + WSL2 + windows terminal,一个麻烦的点在于terminal本身含有众多默认快捷键,有时候会和neovim中各种自设定快捷键冲突,配置过程中需要删掉一些
此外字体需要Nerd Fonts以支持众多的字符图标,不管之前是否安装个人建议是重装一份最新的,我一开始的旧版本存在部分图标未支持的情况。
插件管理
Lazyvim
我对于neovim的配置一开始是跟着 nshen的掘金小册 ,使用packer.nvim一步步配置的,开始的时候我对lua一窍不通(现在也没太会),这本小册对于我对neovim整体的配置逻辑的理解以及后期的自我配置真的帮助很大,非常感谢作者。
但后来查阅nshen的github仓库发现他相比写教程的时候有做很多更新,小册本身有点点过时(各个扩展更新换代太快了),正好在awesome neovim项目里看到了Lazyvim,非常感兴趣,正好配置才刚刚定型,还没有投入大量精力,所以删库跑路弃用了自己的配置然后换到了Lazyvim,但保留的一点是之后我个人添加的keymap映射也单独保存为一个文件,在插件配置中对该文件进行require进行快捷键设置。
Lazyvim(首字母大写与lazy.nvim进行区分)是一个依赖lazy.nvim 插件管理器(二者来自同一个大神)的常用插件集成版配置,相比起从0开始,对已有的配置进行改造明显更为轻松,Lazyvim提供了详细的文档进行查阅,可以在文档里看到Lazyvim全部的初始配置以及许多修改建议。
packer.nvim -> lazy.nvim
大部分插件都只包含packer和vim-plug的安装方式,但lazy给出了从packer配置到修改方法:
requires
➡️dependencies
as
➡️name
opt
➡️lazy
run
➡️build
lock
➡️pin
disable=true
➡️enabled = false
tag='*'
➡️version="*"
after
ℹ️ not needed for most use-cases. Usedependencies
otherwise.wants
ℹ️ not needed for most use-cases. Usedependencies
otherwise.config
don’t support string type, usefun(LazyPlugin)
instead.module
is auto-loaded. No need to specifykeys
spec is differentrtp
can be accomplished with:
大部分仅用到requires
参数
示例:
packer.nvim
use {
'nvim-lualine/lualine.nvim',
requires = { 'kyazdani42/nvim-web-devicons', opt = true },
disable = false, --一般不写,仅做对比
}
require(nvim_tree).setup({
setting_a = ...,
setting_b = ...,
})
↓
lazy.nvim
{
'nvim-lualine/lualine.nvim',
enabled = false --用于Lazyvim中禁用内置插件
dependencies = {
'kyazdani42/nvim-web-devicons',
opt = true
},
opts = {
setting_a = ...,
setting_b = ...,
}
}
更复杂一点的使用可查看官方文档
在~/.config/nvim/init.lua
中添加如下语句
require("lazy").setup("plugins")
lazy.nvim就会去相应名为plugins
的文件夹下依次require文件,文件需返回一个两层table,内含上面示例的插件的配置
Lazyvim中已经存在plugins
和config
文件夹,往里添加文件然后return就行
示例配置文件plugins/plugina.lua
:
local a = {{
"",
opts = {
...
},
...
}}
return a
我个人的文件目录列表如下