-- Keymaps are automatically loaded on the VeryLazy event -- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua -- Add any additional keymaps here -- ╭───────────────────────────────────────────────────────────╮ -- │ Credit: June Gunn ?/! | Google it / Feeling lucky │ -- ╰───────────────────────────────────────────────────────────╯ vim.g.open_command = vim.g.open_command or "xdg-open" ---@param pat string ---@param lucky boolean local function google(pat, lucky) local query = '"' .. vim.fn.substitute(pat, '["\n]', " ", "g") .. '"' query = vim.fn.substitute(query, "[[:punct:] ]", [[\=printf("%%%02X", char2nr(submatch(0)))]], "g") vim.fn.system( vim.fn.printf(vim.g.open_command .. ' "https://www.google.com/search?%sq=%s"', lucky and "btnI&" or "", query) ) end vim.keymap.set("n", "?", function() google(vim.fn.expand(""), false) end, { desc = "Google" }) vim.keymap.set("x", "?", function() google(vim.fn.getreg("g"), false) end, { desc = "Google" }) if vim.lsp.inlay_hint then vim.keymap.set("n", "uh", function() vim.lsp.inlay_hint(0, nil) end, { desc = "Toggle Inlay Hints" }) end vim.keymap.set("n", "ft", "") vim.keymap.set("n", "fT", "") vim.keymap.set("n", "", "zz") vim.keymap.set("n", "", "zz") vim.keymap.set("n", "n", "nzzzv") vim.keymap.set("n", "N", "Nzzzv") -- DEFAULT_KEYMAPS: -- Half-window movements: vim.keymap.set({ "n", "x" }, "", "lua Scroll('', 1, 1)") vim.keymap.set({ "n", "x" }, "", "lua Scroll('', 1, 1)") -- Page movements: vim.keymap.set({ "n", "x" }, "", "lua Scroll('', 1, 1)") vim.keymap.set({ "n", "x" }, "", "lua Scroll('', 1, 1)") vim.keymap.set({ "n", "x" }, "", "lua Scroll('', 1, 1)") vim.keymap.set({ "n", "x" }, "", "lua Scroll('', 1, 1)") -- EXTRA_KEYMAPS: -- Start/end of file and line number movements: vim.keymap.set({ "n", "x" }, "gg", "lua Scroll('gg')") vim.keymap.set({ "n", "x" }, "G", "lua Scroll('G', 0, 1)") -- Start/end of line: vim.keymap.set({ "n", "x" }, "0", "lua Scroll('0')") vim.keymap.set({ "n", "x" }, "^", "lua Scroll('^')") vim.keymap.set({ "n", "x" }, "$", "lua Scroll('$', 0, 1)") -- Paragraph movements: vim.keymap.set({ "n", "x" }, "{", "lua Scroll('{')") vim.keymap.set({ "n", "x" }, "}", "lua Scroll('}')") -- Previous/next search result: vim.keymap.set("n", "n", "lua Scroll('n', 1)") vim.keymap.set("n", "N", "lua Scroll('N', 1)") vim.keymap.set("n", "*", "lua Scroll('*', 1)") vim.keymap.set("n", "#", "lua Scroll('#', 1)") vim.keymap.set("n", "g*", "lua Scroll('g*', 1)") vim.keymap.set("n", "g#", "lua Scroll('g#', 1)") -- Previous/next cursor location: vim.keymap.set("n", "", "lua Scroll('', 1)") vim.keymap.set("n", "", "lua Scroll('1', 1)") -- Screen scrolling: vim.keymap.set("n", "zz", "lua Scroll('zz', 0, 1)") vim.keymap.set("n", "zt", "lua Scroll('zt', 0, 1)") vim.keymap.set("n", "zb", "lua Scroll('zb', 0, 1)") vim.keymap.set("n", "z.", "lua Scroll('z.', 0, 1)") vim.keymap.set("n", "z", "lua Scroll('zt^', 0, 1)") vim.keymap.set("n", "z-", "lua Scroll('z-', 0, 1)") vim.keymap.set("n", "z^", "lua Scroll('z^', 0, 1)") vim.keymap.set("n", "z+", "lua Scroll('z+', 0, 1)") vim.keymap.set("n", "", "lua Scroll('', 0, 1)") vim.keymap.set("n", "", "lua Scroll('', 0, 1)") -- Horizontal screen scrolling: vim.keymap.set("n", "zH", "lua Scroll('zH')") vim.keymap.set("n", "zL", "lua Scroll('zL')") vim.keymap.set("n", "zs", "lua Scroll('zs')") vim.keymap.set("n", "ze", "lua Scroll('ze')") vim.keymap.set("n", "zh", "lua Scroll('zh', 0, 1)") vim.keymap.set("n", "zl", "lua Scroll('zl', 0, 1)") -- EXTENDED_KEYMAPS: -- Up/down movements: vim.keymap.set({ "n", "x" }, "k", "lua Scroll('k', 0, 1)") vim.keymap.set({ "n", "x" }, "j", "lua Scroll('j', 0, 1)") vim.keymap.set({ "n", "x" }, "", "lua Scroll('k', 0, 1)") vim.keymap.set({ "n", "x" }, "", "lua Scroll('j', 0, 1)") -- Left/right movements: vim.keymap.set({ "n", "x" }, "h", "lua Scroll('h', 0, 1)") vim.keymap.set({ "n", "x" }, "l", "lua Scroll('l', 0, 1)") vim.keymap.set({ "n", "x" }, "", "lua Scroll('h', 0, 1)") vim.keymap.set({ "n", "x" }, "", "lua Scroll('l', 0, 1)") -- LSP_KEYMAPS: -- LSP go-to-definition: vim.keymap.set("n", "gd", "lua Scroll('definition')") -- LSP go-to-declaration: vim.keymap.set("n", "gD", "lua Scroll('declaration')") vim.keymap.set("n", "", "noh", { noremap = true, silent = true, desc = "Clear Search" })