Плагины и экосистема
Менеджер плагинов: lazy.nvim
Самый популярный современный менеджер плагинов — lazy.nvim. Поддерживает ленивую загрузку (плагины загружаются только когда нужны), что ускоряет запуск.
Установка
Создайте ~/.config/nvim/lua/plugins/init.lua:
-- Установка lazy.nvim
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", lazypath,
})
end
vim.opt.rtp:prepend(lazypath)
-- Загрузка плагинов
require("lazy").setup({
-- Спецификации плагинов
-- Каждый плагин обычно в отдельном файле lua/plugins/
}, {
defaults = { lazy = true }, -- Ленивая загрузка по умолчанию
})
Затем в init.lua:
require("plugins")
Основные плагины
Цветовая схема
{
"catppuccin/nvim",
name = "catppuccin",
priority = 1000, -- Загружать первым
config = function()
vim.cmd.colorscheme("catppuccin-mocha")
end,
}
Строка состояния
{
"nvim-lualine/lualine.nvim",
dependencies = { "nvim-tree/nvim-web-devicons" },
config = function()
require("lualine").setup()
end,
}
Файловый менеджер
{
"nvim-tree/nvim-tree.lua",
dependencies = { "nvim-tree/nvim-web-devicons" },
keys = {
{ "<leader>e", "<cmd>NvimTreeToggle<cr>", desc = "Переключить файловый менеджер" },
},
config = function()
require("nvim-tree").setup()
end,
}
Which-Key (подсказки клавиш)
{
"folke/which-key.nvim",
event = "VeryLazy",
config = function()
require("which-key").setup()
end,
}
Встроенный терминал
Neovim имеет встроенный эмулятор терминала. Это одна из его ключевых возможностей.
| Команда | Действие |
|---|---|
:terminal или :term | Открыть терминал в новом окне |
:split term://bash | Открыть терминал в горизонтальном разделении |
:vsplit term://zsh | Открыть терминал в вертикальном разделении |
Терминальный режим
Когда терминал открыт, вы находитесь в Terminal-Job mode (ведёт себя как обычный терминал). Чтобы использовать команды Neovim:
Ctrl-\ Ctrl-N— Переключиться в нормальный режим из терминала- Из нормального режима можно прокручивать, копировать и навигировать по выводу терминала
Полезные привязки для терминала
-- Выход из терминального режима по Esc
vim.keymap.set("t", "<Esc><Esc>", "<C-\\><C-n>", { desc = "Выйти из терминального режима" })
-- Открытие терминала
vim.keymap.set("n", "<leader>t", function()
vim.cmd("split | terminal")
vim.cmd("startinsert")
end, { desc = "Открыть терминал" })