Интеграция с Git
Gitsigns (знаки в поле)
{
"lewis6991/gitsigns.nvim",
config = function()
require("gitsigns").setup({
signs = {
add = { text = "│" },
change = { text = "│" },
delete = { text = "_" },
topdelete = { text = "‾" },
changedelete = { text = "~" },
},
on_attach = function(bufnr)
local gs = package.loaded.gitsigns
local opts = { buffer = bufnr }
vim.keymap.set("n", "]h", gs.next_hunk, opts)
vim.keymap.set("n", "[h", gs.prev_hunk, opts)
vim.keymap.set("n", "<leader>hp", gs.preview_hunk, opts)
vim.keymap.set("n", "<leader>hb", gs.blame_line, opts)
vim.keymap.set("n", "<leader>hs", gs.stage_hunk, opts)
vim.keymap.set("n", "<leader>hr", gs.reset_hunk, opts)
end,
})
end,
}
Fugitive (полный Git-интерфейс)
{
"tpope/vim-fugitive",
keys = {
{ "<leader>gs", "<cmd>Git<cr>", desc = "Git статус" },
},
}
Fugitive предоставляет команду :Git (или :G), которая открывает окно статуса git. Оттуда можно:
- Подготовить файлы к коммиту клавишей
-(в окне статуса) - Сделать коммит через
cc - Открыть diff через
dd - Отправить через
:Git push
Сессии и сохранение состояния
Сессии Vim
Сессии сохраняют всё состояние редактирования: открытые файлы, расположение окон, позиции курсора.
:mksession ~/mysession.vim " Сохранить сессию
:source ~/mysession.vim " Восстановить сессию
nvim -S ~/mysession.vim " Восстановить сессию при запуске
Persisted.nvim (автоматические сессии)
{
"olimorris/persisted.nvim",
config = function()
require("persisted").setup({
save_dir = vim.fn.expand(vim.fn.stdpath("data") .. "/sessions/"),
autoload = true, -- Автозагрузка сессии при запуске
})
end,
}
Постоянная история отмен
vim.opt.undofile = true -- в init.lua
Это сохраняет историю отмен между сессиями. Можно отменить изменения даже после закрытия и повторного открытия файла.