-- English comments only. vim.g.mapleader = " " vim.g.maplocalleader = " " local keymap = vim.keymap.set local opts = { silent = true } -- Basic keymap("n", "w", ":w", opts) keymap("n", "q", ":q", opts) -- Better window navigation keymap("n", "", "h", opts) keymap("n", "", "j", opts) keymap("n", "", "k", opts) keymap("n", "", "l", opts) -- Resize splits keymap("n", "", ":resize -2", opts) keymap("n", "", ":resize +2", opts) keymap("n", "", ":vertical resize -2", opts) keymap("n", "", ":vertical resize +2", opts) -- Clear search highlight keymap("n", "h", ":nohlsearch", opts) -- Telescope keymap("n", "ff", "Telescope find_files", opts) keymap("n", "fg", "Telescope live_grep", opts) keymap("n", "fb", "Telescope buffers", opts) keymap("n", "fh", "Telescope help_tags", opts) -- Trouble keymap("n", "xx", "TroubleToggle", opts) vim.keymap.set("n", "", ":BufferLineCycleNext", { silent = true, desc = "Next buffer" }) vim.keymap.set("n", "", ":BufferLineCyclePrev", { silent = true, desc = "Prev buffer" }) vim.keymap.set("n", "bd", ":bdelete", { silent = true, desc = "Delete buffer" }) -- English comments only. local tb = require("telescope.builtin") -- LSP via Telescope (IDE-like) vim.keymap.set("n", "gd", tb.lsp_definitions, { silent = true, desc = "LSP definitions" }) vim.keymap.set("n", "gr", tb.lsp_references, { silent = true, desc = "LSP references" }) vim.keymap.set("n", "gi", tb.lsp_implementations, { silent = true, desc = "LSP implementations" }) vim.keymap.set("n", "gt", tb.lsp_type_definitions, { silent = true, desc = "LSP type definitions" }) vim.keymap.set("n", "ss", tb.lsp_document_symbols, { silent = true, desc = "Document symbols" }) vim.keymap.set("n", "sS", tb.lsp_workspace_symbols, { silent = true, desc = "Workspace symbols" }) vim.keymap.set("n", "sd", tb.diagnostics, { silent = true, desc = "Diagnostics (Telescope)" }) -- ChatGPT vim.keymap.set("n", "cc", "ChatGPT", { desc = "ChatGPT" }) vim.keymap.set("n", "ce", "ChatGPTExplain", { desc = "Explain code" }) vim.keymap.set("n", "cf", "ChatGPTFix", { desc = "Fix code" }) vim.keymap.set("n", "co", "ChatGPTOptimize", { desc = "Optimize code" }) vim.keymap.set("n", "ct", "ChatGPTTests", { desc = "Generate tests" }) vim.keymap.set("v", "ce", "ChatGPTExplain", { desc = "Explain selection" }) vim.keymap.set("v", "cf", "ChatGPTFix", { desc = "Fix selection" }) vim.keymap.set("v", "co", "ChatGPTOptimize", { desc = "Optimize selection" })