nvim tweaks

This commit is contained in:
Henrik Bakken
2025-02-14 17:56:17 +01:00
parent 802c785a53
commit 80aa27a515
+55 -19
View File
@@ -157,6 +157,19 @@ require("lazy").setup({
{ {
"smoka7/hop.nvim", "smoka7/hop.nvim",
opts = {}, opts = {},
cmd = {
"HopWord",
"HopCamelCase",
"HopChar1",
"HopChar2",
"HopPattern",
"HopLine",
"HopLineStart",
"HopAnywhere",
"HopNodes",
"HopPaste",
"HopYankChar1",
},
keys = { keys = {
{ "<CR>", "<cmd>HopWord<cr>", mode = { "n", "v" }, silent = true, noremap = true }, { "<CR>", "<cmd>HopWord<cr>", mode = { "n", "v" }, silent = true, noremap = true },
{ "<M-CR>", "<cmd>HopAnywhere<cr>", mode = { "n", "v" }, silent = true, noremap = true }, { "<M-CR>", "<cmd>HopAnywhere<cr>", mode = { "n", "v" }, silent = true, noremap = true },
@@ -168,11 +181,12 @@ require("lazy").setup({
}, },
{ {
"echasnovski/mini.surround", "echasnovski/mini.surround",
version = "*", version = false,
opts = {}, opts = {},
}, },
{ {
"echasnovski/mini.bufremove", "echasnovski/mini.bufremove",
version = false,
opts = {}, opts = {},
keys = { keys = {
{ "<M-d>", function() require("mini.bufremove").wipeout() end, noremap = true }, { "<M-d>", function() require("mini.bufremove").wipeout() end, noremap = true },
@@ -211,7 +225,7 @@ require("lazy").setup({
-- file management -- file management
{ {
"nvim-neo-tree/neo-tree.nvim", "nvim-neo-tree/neo-tree.nvim",
version = "*", version = false,
cmd = { "Neotree" }, cmd = { "Neotree" },
dependencies = { "nvim-lua/plenary.nvim", "mini.icons", "MunifTanjim/nui.nvim" }, dependencies = { "nvim-lua/plenary.nvim", "mini.icons", "MunifTanjim/nui.nvim" },
opts = { hijack_netrw_behavior = "disabled" }, opts = { hijack_netrw_behavior = "disabled" },
@@ -275,6 +289,7 @@ require("lazy").setup({
-- search count > 99 -- search count > 99
"kevinhwang91/nvim-hlslens", "kevinhwang91/nvim-hlslens",
dependencies = { "haya14busa/vim-asterisk" }, dependencies = { "haya14busa/vim-asterisk" },
cmd = { "HlSearchLensDisable", "HlSearchLensEnable", "HlSearchLensToggle" },
opts = { nearest_only = true }, opts = { nearest_only = true },
keys = { keys = {
{ "*", [[<Plug>(asterisk-z*)<Cmd>lua require('hlslens').start()<CR>]], mode = { "n", "x" }, {} }, { "*", [[<Plug>(asterisk-z*)<Cmd>lua require('hlslens').start()<CR>]], mode = { "n", "x" }, {} },
@@ -427,6 +442,7 @@ require("lazy").setup({
"DiffviewToggleFiles", "DiffviewToggleFiles",
"DiffviewFocusFiles", "DiffviewFocusFiles",
"DiffviewRefresh", "DiffviewRefresh",
"DiffviewFileHistory",
}, },
keys = { keys = {
{ "<leader>gd", "<cmd>DiffviewOpen<cr>", noremap = true }, { "<leader>gd", "<cmd>DiffviewOpen<cr>", noremap = true },
@@ -435,6 +451,22 @@ require("lazy").setup({
}, },
{ {
"tpope/vim-fugitive", "tpope/vim-fugitive",
cmd = {
"Git",
"Gedit",
"Gdiffsplit",
"Gread",
"Gwrite",
"Ggrep",
"Glgrep",
"Gmove",
"GRename",
"GDelete",
"GRemove",
"Gdelete",
"GUnlink",
"GBrowse",
},
config = function() config = function()
vim.api.nvim_create_autocmd("User", { vim.api.nvim_create_autocmd("User", {
pattern = { "FugitiveCommit", "BufReadPost" }, pattern = { "FugitiveCommit", "BufReadPost" },
@@ -478,41 +510,41 @@ require("lazy").setup({
on_attach = function(bufnr) on_attach = function(bufnr)
local gs = require("gitsigns") local gs = require("gitsigns")
local function map(mode, l, r, opts) local function bmap(mode, l, r, opts)
opts = opts or {} opts = opts or {}
opts.buffer = bufnr opts.buffer = bufnr
vim.keymap.set(mode, l, r, opts) vim.keymap.set(mode, l, r, opts)
end end
-- Navigation -- Navigation
map("n", "<M-,>", function() bmap("n", "<M-,>", function()
if vim.wo.diff then return "]c" end if vim.wo.diff then return "]c" end
vim.schedule(function() gs.next_hunk() end) vim.schedule(function() gs.next_hunk() end)
return "<Ignore>" return "<Ignore>"
end, { expr = true }) end, { expr = true })
map("n", "<M-.>", function() bmap("n", "<M-.>", function()
if vim.wo.diff then return "[c" end if vim.wo.diff then return "[c" end
vim.schedule(function() gs.prev_hunk() end) vim.schedule(function() gs.prev_hunk() end)
return "<Ignore>" return "<Ignore>"
end, { expr = true }) end, { expr = true })
-- Actions -- Actions
map({ "n", "v" }, "<leader>gs", gs.stage_hunk) bmap({ "n", "v" }, "<leader>gs", gs.stage_hunk)
map({ "n", "v" }, "<leader>gx", gs.reset_hunk) bmap({ "n", "v" }, "<leader>gx", gs.reset_hunk)
map("n", "<leader>gu", gs.undo_stage_hunk) bmap("n", "<leader>gu", gs.undo_stage_hunk)
map("n", "<leader>gi", gs.preview_hunk_inline) bmap("n", "<leader>gi", gs.preview_hunk)
map("n", "<leader>gb", function() gs.blame_line({ full = true }) end) bmap("n", "<leader>gb", function() gs.blame_line({ full = true }) end)
map("n", "<leader>gS", gs.stage_buffer) bmap("n", "<leader>gS", gs.stage_buffer)
map("n", "<leader>gX", gs.reset_buffer) bmap("n", "<leader>gX", gs.reset_buffer)
map("n", "<leader>td", gs.toggle_deleted) bmap("n", "<leader>td", gs.toggle_deleted)
map("n", "<leader>tl", gs.toggle_linehl) bmap("n", "<leader>tl", gs.toggle_linehl)
map("n", "<leader>tb", gs.toggle_current_line_blame) bmap("n", "<leader>tb", gs.toggle_current_line_blame)
map("n", "<leader>th", gs.toggle_word_diff) bmap("n", "<leader>th", gs.toggle_word_diff)
map("n", "<leader>tn", gs.toggle_numhl) bmap("n", "<leader>tn", gs.toggle_numhl)
-- Text object -- Text object
map({ "o", "x" }, "ih", "<cmd><C-U>Gitsigns select_hunk<CR>") bmap({ "o", "x" }, "ih", "<cmd><C-U>Gitsigns select_hunk<CR>")
end, end,
}, },
}, },
@@ -549,7 +581,7 @@ require("lazy").setup({
{ {
-- Fuzzy Finder (files, lsp, etc) -- Fuzzy Finder (files, lsp, etc)
"nvim-telescope/telescope.nvim", "nvim-telescope/telescope.nvim",
version = "*", version = false,
dependencies = { dependencies = {
"sharkdp/fd", "sharkdp/fd",
"nvim-lua/plenary.nvim", "nvim-lua/plenary.nvim",
@@ -845,11 +877,15 @@ require("lazy").setup({
}, },
{ {
"neovim/nvim-lspconfig", "neovim/nvim-lspconfig",
lazy = false,
dependencies = { dependencies = {
"williamboman/mason.nvim", "williamboman/mason.nvim",
"williamboman/mason-lspconfig.nvim", "williamboman/mason-lspconfig.nvim",
"kevinhwang91/nvim-ufo", "kevinhwang91/nvim-ufo",
{ "j-hui/fidget.nvim", opts = {} },
}, },
event = { "BufReadPost", "BufNewFile" },
cmd = { "LspInfo", "LspInstall", "LspUninstall" },
keys = { { "<F3>", "<cmd>LspInfo<cr>", noremap = true } }, keys = { { "<F3>", "<cmd>LspInfo<cr>", noremap = true } },
config = function() config = function()
local on_attach = function(client, bufnr) local on_attach = function(client, bufnr)