2.2 KiB
Installing lazy
Lazy is one of packet managers for neovim, which is implemented and configured
in lua.
This snippet installs lazy via git cloning it to stdpath data from the github
reposity.
The path data specifies the neovim directory inside the directory specified by
variable XDG_DATA_HOME, which defaults to $HOME/.local/share.
I.e the default directory is $HOME/.local/share/nvim.
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
-- lazy.nvim installieren (falls nicht vorhanden)
if not (vim.uv or vim.loop).fs_stat(lazypath) then
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
if vim.v.shell_error ~= 0 then
vim.api.nvim_echo({
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
{ out, "WarningMsg" },
{ "\nPress any key to exit..." },
}, true, {})
vim.fn.getchar()
os.exit(1)
end
end
-- Add lazy.nvim directory to the path lua path.
vim.opt.rtp:prepend(lazypath)
Sourcing plugins
When adding following line:
require("lazy").setup("plugins")
Lazy will source all lua files found in the source directory plugins.
The neovim config folder is: $XDG_CONFIG_HOME/nvim/, where XDG_CONFIG_HOME
defaults to $HOME/.config/.
I.e. the resulting directory which should exist is:
$HOME/.config/nvim/lua/plugins.
For simplicity each file in the directory should contain only one plugin.
Adding plugins
Adding plugins is simple. Usually there is a example on the github page.
But with this approach you need to add a return in front of the object
and store the the into a new file.
For example:
return {
"NeogitOrg/neogit",
dependencies = {
"nvim-lua/plenary.nvim", -- required
"sindrets/diffview.nvim", -- optional - Diff integration
-- Only one of these is needed.
"nvim-telescope/telescope.nvim", -- optional
"ibhagwan/fzf-lua", -- optional
"echasnovski/mini.pick", -- optional
},
};
This will return the shown object.
For further explanation and documentation consult the documentation of lazy.