neovim用户默认配置文件位置在~/.config/neovim里
目录结构(click):
nvim
├── init.lua //主配置文件,相当于vimrc
├── lazy-lock.json
├── lua //次配置文件目录,可以把一些东西分成几个lua模块
│ ├── keymaps.lua //映射键模块
│ ├── options.lua //vim设置模块
│ ├── plugins-config //放插件配置文件的目录
│ │ ├── lualine.lua
│ │ └── nvim-tree.lua
│ └── plugins.lua //插件模块
└── README
主配置文件
主要是用来调用各个模块
require(模块名)
//例如
require("plugins-config.nvim-tree") //双引号或单引号都可以
安装Lazy
在plugins.lua里编写(不知道它在哪的看上面的目录结构)
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({
"git",
"clone",
"--filter=blob:none",
"https://github.com/folke/lazy.nvim.git",
"--branch=stable", -- latest stable release
lazypath,
})
end
vim.opt.rtp:prepend(lazypath)
--上面这一坨就是判断有没有lazy,没有就安装它
require("lazy").setup(
--这里写要安装的插件们
--还没想好就空着
)
保存好后再次打开neovim,neovim会检测是否有lazy,没有就从github上下载下来
使用:Lazy命令会打开下面这个界面就说明成功了
安装插件
从github寻好插件后,将其作者名与仓库名复制下来,填到plugins里,就是刚才让你没想好空着的那里。
比如我要安装Nvim-tree这个插件,那就把它写进去
--多个插件要用逗号隔开
require("lazy").setup(
-- 谁的/仓库名 依赖(没有可以不写,这个是tree的图标文件)
{ "nvim-tree/nvim-tree.lua", dependencies = { "nvim-tree/nvim-web-devicons" } },
-- 如果是安装lualine插件的话,只需要把前面的写上就行
{ "nvim-lualine/lualine.nvim" }
)
添加好插件后,执行下面的命令,它会自动帮你安装好插件。这是在shell里执行的哈
nvim --headless "+Lazy sync" +q
插件安装好后,nvim并没有使用它,需要使用<插件名>.setup()函数创建实例。
又不想让init.lua变得臃肿,所以我在lua文件夹里创建了plugins-config文件夹,专门来装插件的实例代码。比如nvim-tree的lua文件是:
--这一坨是进入nvim时判断这个插件有没有被加载
local status, nvim_tree = pcall(require, "nvim-tree")
if not status then
vim.notify("没有找到 nvim-tree")
return
end
--这一坨被注释了,是一旦进入nvim就打开NvimTree的
--vim.api.nvim_create_autocmd("VimEnter", {
-- callback = function()
-- require("nvim-tree.api").tree.open()
-- vim.cmd("wincmd l")
-- end
--})
--这一坨是判断当前是否只剩下NvimTree了,如果是则关闭nvim
vim.api.nvim_create_autocmd("BufEnter", {
nested = true,
callback = function()
-- 获取当前打开的窗口数量
local wins = vim.api.nvim_tabpage_list_wins(0)
if #wins == 1 and vim.bo.filetype == "NvimTree" then
vim.cmd("quit") -- 只有 NvimTree 剩下时,自动退出 Neovim
end
end
})
--这一坨才是真正的实例代码,上面那些你不写也可以
nvim_tree.setup({
sort_by = "case_sensitive",
-- 是否显示 git 状态
git = {
enable = true,
},
-- 过滤文件
filters = {
dotfiles = true, -- 过滤 dotfile
custom = { "node_modules" }, -- 其他过滤目录
},
view = {
-- 文件浏览器展示位置,左侧:left, 右侧:right
side = "left",
-- 行号是否显示
number = false,
relativenumber = false,
signcolumn = "yes", -- 显示图标
width = 30,
},
renderer = {
group_empty = true,
},
})
最後(さいご)の最後 ゴゴゴゴゴ
将这些配置文件全加载到init.lua里
--从上到下是
--设置模块、按键映射模块、插件模块、插件配置文件里的nvim-tree模块、~里的lualine模块
require('options')
require('keymaps')
require("plugins")
require("plugins-config.nvim-tree")
require("plugins-config.lualine")