Lazy.nvim plugin manager, LSP (rust-analyzer, clangd, ts_ls, zls), treesitter, telescope, bufferline, neo-tree, gitsigns, lazygit, alabaster theme, persistence sessions, nvim-cmp, lualine, which-key. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
48 lines
1.7 KiB
Lua
48 lines
1.7 KiB
Lua
vim.g.mapleader = " "
|
|
vim.g.maplocalleader = " "
|
|
|
|
local map = vim.keymap.set
|
|
|
|
-- Better window navigation
|
|
map("n", "<C-h>", "<C-w>h", { desc = "Go to left window" })
|
|
map("n", "<C-j>", "<C-w>j", { desc = "Go to lower window" })
|
|
map("n", "<C-k>", "<C-w>k", { desc = "Go to upper window" })
|
|
map("n", "<C-l>", "<C-w>l", { desc = "Go to right window" })
|
|
|
|
-- Resize windows
|
|
map("n", "<C-Up>", ":resize +2<CR>", { desc = "Increase window height" })
|
|
map("n", "<C-Down>", ":resize -2<CR>", { desc = "Decrease window height" })
|
|
map("n", "<C-Left>", ":vertical resize -2<CR>", { desc = "Decrease window width" })
|
|
map("n", "<C-Right>", ":vertical resize +2<CR>", { desc = "Increase window width" })
|
|
|
|
-- Buffers
|
|
map("n", "<S-l>", ":bnext<CR>", { desc = "Next buffer" })
|
|
map("n", "<S-h>", ":bprevious<CR>", { desc = "Previous buffer" })
|
|
map("n", "<leader>bd", ":bdelete<CR>", { desc = "Delete buffer" })
|
|
|
|
-- Move lines up/down in visual mode
|
|
map("v", "J", ":m '>+1<CR>gv=gv", { desc = "Move selection down" })
|
|
map("v", "K", ":m '<-2<CR>gv=gv", { desc = "Move selection up" })
|
|
|
|
-- Keep cursor centered when scrolling
|
|
map("n", "<C-d>", "<C-d>zz")
|
|
map("n", "<C-u>", "<C-u>zz")
|
|
|
|
-- Keep cursor centered on search results
|
|
map("n", "n", "nzzzv")
|
|
map("n", "N", "Nzzzv")
|
|
|
|
-- Clear search highlight
|
|
map("n", "<Esc>", ":nohlsearch<CR>", { desc = "Clear search highlight" })
|
|
|
|
-- Better paste (don't override register)
|
|
map("x", "<leader>p", '"_dP', { desc = "Paste without overwriting register" })
|
|
|
|
-- Save file
|
|
map("n", "<C-s>", ":w<CR>", { desc = "Save file" })
|
|
|
|
-- Diagnostic navigation
|
|
map("n", "[d", vim.diagnostic.goto_prev, { desc = "Previous diagnostic" })
|
|
map("n", "]d", vim.diagnostic.goto_next, { desc = "Next diagnostic" })
|
|
map("n", "<leader>e", vim.diagnostic.open_float, { desc = "Show diagnostic" })
|