62 lines
2.0 KiB
Lua
62 lines
2.0 KiB
Lua
local map = vim.keymap.set
|
|
|
|
-- Save/Quit
|
|
map("n", "<leader>w", "<cmd>w<cr>", { desc = "Save" })
|
|
map("n", "<leader>q", "<cmd>q<cr>", { desc = "Quit" })
|
|
|
|
-- Better movement with wrapped lines (just in case you turn wrap on)
|
|
map("n", "j", "gj", { noremap = true })
|
|
map("n", "k", "gk", { noremap = true })
|
|
|
|
-- Clear search highlight
|
|
map("n", "<leader>h", "<cmd>nohlsearch<cr>", { desc = "No highlight" })
|
|
|
|
-- Diagnostics
|
|
map("n", "[d", vim.diagnostic.goto_prev, { desc = "Prev diagnostic" })
|
|
map("n", "]d", vim.diagnostic.goto_next, { desc = "Next diagnostic" })
|
|
map("n", "<leader>y", vim.diagnostic.open_float, { desc = "Diagnostic float" })
|
|
|
|
-- Window navigation
|
|
map("n", "<C-h>", "<C-w>h", { desc = "Left window" })
|
|
map("n", "<C-j>", "<C-w>j", { desc = "Down window" })
|
|
map("n", "<C-k>", "<C-w>k", { desc = "Up window" })
|
|
map("n", "<C-l>", "<C-w>l", { desc = "Right window" })
|
|
|
|
local diagnostics_visible = true
|
|
|
|
-- Enable inline diagnostics on startup
|
|
vim.diagnostic.config({
|
|
virtual_text = true,
|
|
})
|
|
|
|
map("n", "<leader>td", function()
|
|
diagnostics_visible = not diagnostics_visible
|
|
vim.diagnostic.config({
|
|
virtual_text = diagnostics_visible,
|
|
})
|
|
end, { desc = "Toggle inline diagnostics" })
|
|
|
|
vim.keymap.set("n", "]b", "<cmd>bnext<cr>", { desc = "Next buffer" })
|
|
vim.keymap.set("n", "[b", "<cmd>bprevious<cr>", { desc = "Previous buffer" })
|
|
|
|
-- Go to buffer controlls 1-9
|
|
for i = 1, 9 do
|
|
vim.keymap.set("n", "<leader>" .. i, function()
|
|
local bufs = vim.fn.getbufinfo({ buflisted = 1 })
|
|
if bufs[i] then
|
|
vim.api.nvim_set_current_buf(bufs[i].bufnr)
|
|
end
|
|
end, { desc = "Go to buffer " .. i })
|
|
end
|
|
-- Delete current buffer (without closing window)
|
|
vim.keymap.set("n", "<leader>bd", function()
|
|
local current = vim.api.nvim_get_current_buf()
|
|
vim.cmd("bnext")
|
|
vim.cmd("bdelete " .. current)
|
|
end, { desc = "Delete buffer" })
|
|
|
|
-- Toggle terminal in a bottom split
|
|
vim.keymap.set("n", "<leader>tt", function()
|
|
vim.cmd("botright split | resize 15 | terminal")
|
|
end, { desc = "Open terminal (bottom split)" })
|