neovim configuration

This commit is contained in:
2026-03-22 13:00:29 +01:00
commit 2da113baae
10 changed files with 431 additions and 0 deletions

22
lua/config/autocmds.lua Normal file
View File

@@ -0,0 +1,22 @@
-- Show floating diagnostic on cursor hold
vim.cmd([[
set signcolumn=yes
autocmd CursorHold * lua vim.diagnostic.open_float(nil, { focusable = false })
]])
-- Trigger linting on file save
vim.api.nvim_create_autocmd({ "BufWritePost" }, {
callback = function()
require("lint").try_lint()
end,
})
-- Markdown specific settings
vim.api.nvim_create_autocmd("FileType", {
pattern = "markdown",
callback = function()
vim.opt_local.wrap = true
vim.keymap.set("n", "j", "gj", { buffer = true, desc = "Move down visual line" })
vim.keymap.set("n", "k", "gk", { buffer = true, desc = "Move up visual line" })
end,
})

26
lua/config/keymaps.lua Normal file
View File

@@ -0,0 +1,26 @@
-- General Operations
vim.keymap.set("n", "<leader>w", "<cmd>write<cr>", { desc = "Save file" })
vim.keymap.set("n", "<leader>q", "<cmd>quitall<cr>", { desc = "Exit Neovim" })
-- Window Navigation
vim.keymap.set("n", "<leader>h", "<cmd>wincmd h<cr>", { desc = "Move to left split" })
vim.keymap.set("n", "<leader>l", "<cmd>wincmd l<cr>", { desc = "Move to right split" })
vim.keymap.set("n", "<leader>j", "<cmd>wincmd j<cr>", { desc = "Move to lower split" })
vim.keymap.set("n", "<leader>k", "<cmd>wincmd k<cr>", { desc = "Move to upper split" })
-- Search & Navigation (Mini Pick & Files)
vim.keymap.set("n", "<leader>e", "<cmd>lua MiniFiles.open()<cr>", { desc = "Open File Explorer" })
vim.keymap.set("n", "<leader><space>", "<cmd>Pick buffers<cr>", { desc = "Search open buffers" })
vim.keymap.set("n", "<leader>ff", "<cmd>Pick files<cr>", { desc = "Search all files" })
vim.keymap.set("n", "<leader>fh", "<cmd>Pick help<cr>", { desc = "Search help tags" })
-- Diagnostics Navigation
vim.keymap.set("n", "<leader>fd", "<cmd>Pick diagnostic<cr>", { desc = "Search all diagnostics" })
vim.keymap.set("n", "]d", vim.diagnostic.goto_next, { desc = "Next diagnostic" })
vim.keymap.set("n", "[d", vim.diagnostic.goto_prev, { desc = "Previous diagnostic" })
vim.keymap.set("n", "]e", function()
vim.diagnostic.goto_next({ severity = vim.diagnostic.severity.ERROR })
end, { desc = "Next error" })
vim.keymap.set("n", "[e", function()
vim.diagnostic.goto_prev({ severity = vim.diagnostic.severity.ERROR })
end, { desc = "Previous error" })

14
lua/config/options.lua Normal file
View File

@@ -0,0 +1,14 @@
vim.g.mapleader = "," -- Set leader key to comma
vim.o.number = true -- Show absolute line numbers
vim.o.wrap = false -- Disable line wrapping globally
vim.o.tabstop = 4 -- Width of a raw <Tab> character
vim.o.shiftwidth = 4 -- Number of spaces used for autoindent
vim.o.expandtab = true -- Use spaces instead of tabs
vim.o.smartcase = true -- Override ignorecase if search contains uppercase
vim.o.ignorecase = true -- Case-insensitive searching
vim.o.hlsearch = false -- Disable persistent search highlighting
vim.o.signcolumn = "yes" -- Always show the sign column (prevents text shifting)
vim.o.clipboard = "unnamedplus" -- Sync Neovim with the system clipboard
vim.o.undofile = true -- Enable persistent undo history between sessions
vim.o.undodir = vim.fn.expand("~/.cache/nvim-undodir") -- Path to store undo history