Updated keybinds for which-key integration

This commit is contained in:
2025-01-31 17:06:59 +11:00
parent 21e9cf9f6c
commit 585d8eb7a1
18 changed files with 330 additions and 208 deletions

View File

@@ -170,8 +170,8 @@ Extensible fuzzy finder for NeoVim
|---------|---------------|------| |---------|---------------|------|
| `<leader>pf` | Find files | Normal | | `<leader>pf` | Find files | Normal |
| `Ctrl + p` | Find git files | Normal | | `Ctrl + p` | Find git files | Normal |
| `<leader>pws` | Search files for `<cword>` (word the cursor is on) | Normal | | `<leader>pw` | Search files for `<cword>` (word the cursor is on) | Normal |
| `<leader>pWs` | Search files for `<cWORD>` (WORD the cursor is on) | Normal | | `<leader>pW` | Search files for `<cWORD>` (WORD the cursor is on) | Normal |
| `<leader>ps` | Search files with grep | Normal | | `<leader>ps` | Search files with grep | Normal |
| `<leader>vh` | Search builtin documentation | Normal | | `<leader>vh` | Search builtin documentation | Normal |

View File

@@ -21,7 +21,7 @@
"mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" }, "mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" },
"nvim": { "branch": "main", "commit": "4965db2d6155c25db4e8417465fc2703fdf4c2b7" }, "nvim": { "branch": "main", "commit": "4965db2d6155c25db4e8417465fc2703fdf4c2b7" },
"nvim-cmp": { "branch": "main", "commit": "12509903a5723a876abd65953109f926f4634c30" }, "nvim-cmp": { "branch": "main", "commit": "12509903a5723a876abd65953109f926f4634c30" },
"nvim-lspconfig": { "branch": "master", "commit": "8c5620b04121864a1b5af134d4c2c23cee68b6ef" }, "nvim-lspconfig": { "branch": "master", "commit": "ead2fbc4893fdd062e1dd0842679a48bfb7bac5c" },
"nvim-surround": { "branch": "main", "commit": "ae298105122c87bbe0a36b1ad20b06d417c0433e" }, "nvim-surround": { "branch": "main", "commit": "ae298105122c87bbe0a36b1ad20b06d417c0433e" },
"nvim-treesitter": { "branch": "master", "commit": "110bdf91e3fcbc019efbac13026ae4ad9e4ededf" }, "nvim-treesitter": { "branch": "master", "commit": "110bdf91e3fcbc019efbac13026ae4ad9e4ededf" },
"nvim-web-devicons": { "branch": "master", "commit": "1c9136332840edee0c593f2f4f89598c8ed97f5f" }, "nvim-web-devicons": { "branch": "master", "commit": "1c9136332840edee0c593f2f4f89598c8ed97f5f" },

View File

@@ -3,29 +3,48 @@ require("haelnorr.remap")
require("haelnorr.lazy_init") require("haelnorr.lazy_init")
local augroup = vim.api.nvim_create_augroup local augroup = vim.api.nvim_create_augroup
local HaelnorrGroup = augroup('Haelnorr', {}) local HaelnorrGroup = augroup("Haelnorr", {})
local autocmd = vim.api.nvim_create_autocmd local autocmd = vim.api.nvim_create_autocmd
function R(name) function R(name)
require("plenary.reload").reload_module(name) require("plenary.reload").reload_module(name)
end end
autocmd('LspAttach', { autocmd("LspAttach", {
group = HaelnorrGroup, group = HaelnorrGroup,
callback = function(e) callback = function(e)
local opts = { buffer = e.buf } vim.keymap.set("n", "gd", function()
vim.keymap.set("n", "gd", function() vim.lsp.buf.definition() end, opts) vim.lsp.buf.definition()
vim.keymap.set("n", "K", function() vim.lsp.buf.hover() end, opts) end, { buffer = e.buf, desc = "Goto definition" })
vim.keymap.set("n", "<leader>vws", function() vim.lsp.buf.workspace_symbol() end, opts) vim.keymap.set("n", "K", function()
vim.keymap.set("n", "<leader>vd", function() vim.diagnostic.open_float() end, opts) vim.lsp.buf.hover()
vim.keymap.set("n", "<leader>vca", function() vim.lsp.buf.code_action() end, opts) end, { buffer = e.buf, desc = "Display hover" })
vim.keymap.set("n", "<leader>vrr", function() vim.lsp.buf.references() end, opts) vim.keymap.set("n", "<leader>vs", function()
vim.keymap.set("n", "<leader>vrn", function() vim.lsp.buf.rename() end, opts) vim.lsp.buf.workspace_symbol()
vim.keymap.set("i", "<C-h>", function() vim.lsp.buf.signature_help() end, opts) end, { buffer = e.buf, desc = "Find symbol in workspace" })
vim.keymap.set("n", "[d", function() vim.diagnostic.goto_next() end, opts) vim.keymap.set("n", "<leader>vf", function()
vim.keymap.set("n", "]d", function() vim.diagnostic.goto_prev() end, opts) vim.diagnostic.open_float()
end end, { buffer = e.buf, desc = "Show diagnostics" })
vim.keymap.set("n", "<leader>va", function()
vim.lsp.buf.code_action()
end, { buffer = e.buf, desc = "Code action" })
vim.keymap.set("n", "<leader>vs", function()
vim.lsp.buf.references()
end, { buffer = e.buf, desc = "List references to symbol" })
vim.keymap.set("n", "<leader>vr", function()
vim.lsp.buf.rename()
end, { buffer = e.buf, desc = "Rename symbol" })
vim.keymap.set("i", "<C-h>", function()
vim.lsp.buf.signature_help()
end, { buffer = e.buf, desc = "Display signature" })
vim.keymap.set("n", "[d", function()
vim.diagnostic.goto_next()
end, { buffer = e.buf, desc = "Next diagnostic" })
vim.keymap.set("n", "]d", function()
vim.diagnostic.goto_prev()
end, { buffer = e.buf, desc = "Prev diagnostic" })
end,
}) })
vim.g.netrw_browse_split = 0 vim.g.netrw_browse_split = 0

View File

@@ -27,6 +27,6 @@ return {
"Method", "Method",
}, },
}) })
vim.keymap.set("n", "<leader>pa", "<cmd>AerialToggle!<CR>") vim.keymap.set("n", "<leader>oa", "<cmd>AerialToggle!<CR>", { desc = "Toggle Aerial" })
end, end,
} }

View File

@@ -1,48 +1,37 @@
return { return {
"stevearc/conform.nvim", "stevearc/conform.nvim",
event = { "BufWritePre" }, event = { "BufWritePre" },
cmd = { "ConformInfo" }, cmd = { "ConformInfo" },
keys = { -- This will provide type hinting with LuaLS
{ ---@module "conform"
-- Customize or remove this keymap to your liking ---@type conform.setupOpts
"<leader>f", opts = {
function() -- Define your formatters
require("conform").format({ async = true }) formatters_by_ft = {
end, lua = { "stylua" },
mode = "", python = { "isort", "black" },
desc = "Format buffer", javascript = { "prettierd", "prettier", stop_after_first = true },
}, typescript = { "prettierd", "prettier", stop_after_first = true },
}, typescriptreact = { "prettierd", "prettier", stop_after_first = true },
-- This will provide type hinting with LuaLS json = { "prettierd", "prettier", stop_after_first = true },
---@module "conform" html = { "prettierd", "prettier", stop_after_first = true },
---@type conform.setupOpts css = { "prettierd", "prettier", stop_after_first = true },
opts = { },
-- Define your formatters -- Set default options
formatters_by_ft = { default_format_opts = {
lua = { "stylua" }, lsp_format = "fallback",
python = { "isort", "black" }, },
javascript = { "prettierd", "prettier", stop_after_first = true }, -- Set up format-on-save
typescript = { "prettierd", "prettier", stop_after_first = true }, format_on_save = { timeout_ms = 500 },
typescriptreact = { "prettierd", "prettier", stop_after_first = true }, -- Customize formatters
json = { "prettierd", "prettier", stop_after_first = true }, formatters = {
html = { "prettierd", "prettier", stop_after_first = true }, shfmt = {
css = { "prettierd", "prettier", stop_after_first = true }, prepend_args = { "-i", "2" },
}, },
-- Set default options },
default_format_opts = { },
lsp_format = "fallback", init = function()
}, -- If you want the formatexpr, here is the place to set it
-- Set up format-on-save vim.o.formatexpr = "v:lua.require'conform'.formatexpr()"
format_on_save = { timeout_ms = 500 }, end,
-- Customize formatters
formatters = {
shfmt = {
prepend_args = { "-i", "2" },
},
},
},
init = function()
-- If you want the formatexpr, here is the place to set it
vim.o.formatexpr = "v:lua.require'conform'.formatexpr()"
end,
} }

View File

@@ -1,8 +1,15 @@
return { return {
"kristijanhusak/vim-dadbod-ui", "kristijanhusak/vim-dadbod-ui",
dependencies = { dependencies = {
{ "tpope/vim-dadbod", lazy = true }, {
{ "kristijanhusak/vim-dadbod-completion", ft = { "sql", "mysql", "plsql" }, lazy = true }, -- Optional "tpope/vim-dadbod",
lazy = true,
},
{
"kristijanhusak/vim-dadbod-completion",
ft = { "sql", "mysql", "plsql" },
lazy = true,
},
}, },
cmd = { cmd = {
"DBUI", "DBUI",
@@ -11,7 +18,7 @@ return {
"DBUIFindBuffer", "DBUIFindBuffer",
}, },
init = function() init = function()
-- Your DBUI configuration
vim.g.db_ui_use_nerd_fonts = 1 vim.g.db_ui_use_nerd_fonts = 1
vim.keymap.set("n", "<leader>od", "<cmd>DBUIToggle<CR>", { desc = "Toggle Dadbod UI" })
end, end,
} }

View File

@@ -1,44 +1,47 @@
return { return {
"tpope/vim-fugitive", "tpope/vim-fugitive",
config = function() config = function()
vim.keymap.set("n", "<leader>gs", vim.cmd.Git) vim.keymap.set("n", "<leader>g", vim.cmd.Git, { desc = "Open Git fugitive" })
local Haelnorr_Fugitive = vim.api.nvim_create_augroup("Haelnorr_Fugitive", {}) local Haelnorr_Fugitive = vim.api.nvim_create_augroup("Haelnorr_Fugitive", {})
local autocmd = vim.api.nvim_create_autocmd local autocmd = vim.api.nvim_create_autocmd
autocmd("BufWinEnter", { autocmd("BufWinEnter", {
group = Haelnorr_Fugitive, group = Haelnorr_Fugitive,
pattern = "*", pattern = "*",
callback = function() callback = function()
if vim.bo.ft ~= "fugitive" then if vim.bo.ft ~= "fugitive" then
return return
end end
local bufnr = vim.api.nvim_get_current_buf() local bufnr = vim.api.nvim_get_current_buf()
local opts = {buffer = bufnr, remap = false} vim.keymap.set("n", "<leader>s", function()
vim.keymap.set("n", "<leader>s", function() vim.cmd.Git("add -A")
vim.cmd.Git('add -A') end, { buffer = bufnr, remap = false, desc = "Stage all files" })
end, opts) vim.keymap.set("n", "<leader>c", function()
vim.keymap.set("n", "<leader>c", function() vim.cmd.Git("commit")
vim.cmd.Git('commit') end, { buffer = bufnr, remap = false, desc = "Commit" })
end, opts) vim.keymap.set("n", "<leader>p", function()
vim.keymap.set("n", "<leader>p", function() vim.cmd.Git("push")
vim.cmd.Git('push') end, { buffer = bufnr, remap = false, desc = "Push" })
end, opts)
-- rebase always -- rebase always
vim.keymap.set("n", "<leader>P", function() vim.keymap.set("n", "<leader>P", function()
vim.cmd.Git({'pull', '--rebase'}) vim.cmd.Git({ "pull", "--rebase" })
end, opts) end, { buffer = bufnr, remap = false, desc = "Pull with rebase" })
-- NOTE: It allows me to easily set the branch i am pushing and any tracking -- NOTE: It allows me to easily set the branch i am pushing and any tracking
-- needed if i did not set the branch up correctly -- needed if i did not set the branch up correctly
vim.keymap.set("n", "<leader>t", ":Git push -u origin ", opts); vim.keymap.set(
end, "n",
}) "<leader>t",
":Git push -u origin ",
{ buffer = bufnr, remap = false, desc = "Push and set origin" }
)
end,
})
vim.keymap.set("n", "gu", "<cmd>diffget //2<CR>")
vim.keymap.set("n", "gu", "<cmd>diffget //2<CR>") vim.keymap.set("n", "gh", "<cmd>diffget //3<CR>")
vim.keymap.set("n", "gh", "<cmd>diffget //3<CR>") end,
end
} }

View File

@@ -1,20 +1,9 @@
return { return {
"ThePrimeagen/harpoon", "ThePrimeagen/harpoon",
branch = "harpoon2", branch = "harpoon2",
dependencies = { "nvim-lua/plenary.nvim" }, dependencies = { "nvim-lua/plenary.nvim" },
config = function() config = function()
local harpoon = require("harpoon") local harpoon = require("harpoon")
harpoon:setup()
harpoon:setup() end,
vim.keymap.set("n", "<leader>a", function() harpoon:list():add() end)
vim.keymap.set("n", "<A-e>", function() harpoon.ui:toggle_quick_menu(harpoon:list()) end)
vim.keymap.set("n", "<A-h>", function() harpoon:list():select(1) end)
vim.keymap.set("n", "<A-j>", function() harpoon:list():select(2) end)
vim.keymap.set("n", "<A-k>", function() harpoon:list():select(3) end)
vim.keymap.set("n", "<A-l>", function() harpoon:list():select(4) end)
vim.keymap.set("n", "<leader><A-h>", function() harpoon:list():replace_at(1) end)
vim.keymap.set("n", "<leader><A-j>", function() harpoon:list():replace_at(2) end)
vim.keymap.set("n", "<leader><A-k>", function() harpoon:list():replace_at(3) end)
vim.keymap.set("n", "<leader><A-l>", function() harpoon:list():replace_at(4) end)
end
} }

View File

@@ -1,9 +1,9 @@
return { return {
{ {
"nvim-lua/plenary.nvim", "nvim-lua/plenary.nvim",
name = "plenary" name = "plenary",
}, },
"eandrju/cellular-automaton.nvim", "eandrju/cellular-automaton.nvim",
} }

View File

@@ -20,6 +20,7 @@ return {
end end
vim.tbl_map(function(type) vim.tbl_map(function(type)
require("luasnip.loaders.from_" .. type).lazy_load() require("luasnip.loaders.from_" .. type).lazy_load()
vim.keymap.set("n", "<leader>ts", "<cmd>Telescope luasnip<CR>", { desc = "Search Snippets" })
end, { "vscode", "snipmate", "lua" }) end, { "vscode", "snipmate", "lua" })
end, end,
}, },

View File

@@ -1,9 +1,10 @@
return { return {
"iamcco/markdown-preview.nvim", "iamcco/markdown-preview.nvim",
cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" }, cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" },
build = "cd app && yarn install", build = "cd app && yarn install",
init = function() init = function()
vim.g.mkdp_filetypes = { "markdown" } vim.g.mkdp_filetypes = { "markdown" }
end, vim.keymap.set("n", "<leader>om", "<cmd>MarkdownPreviewToggle<CR>", { desc = "Toggle MarkdownPreview" })
ft = { "markdown" }, end,
ft = { "markdown" },
} }

View File

@@ -7,16 +7,16 @@ return {
lazy = false, lazy = false,
config = function() config = function()
require("refactoring").setup() require("refactoring").setup()
vim.keymap.set("x", "<leader>re", ":Refactor extract ") vim.keymap.set("x", "<leader>re", ":Refactor extract ", { desc = "Extract selection" })
vim.keymap.set("x", "<leader>rf", ":Refactor extract_to_file ") vim.keymap.set("x", "<leader>rf", ":Refactor extract_to_file ", { desc = "Extract selection to new file" })
vim.keymap.set("x", "<leader>rv", ":Refactor extract_var ") vim.keymap.set("x", "<leader>rv", ":Refactor extract_var ", { desc = "Extract var" })
vim.keymap.set({ "n", "x" }, "<leader>ri", ":Refactor inline_var") vim.keymap.set({ "n", "x" }, "<leader>ri", ":Refactor inline_var", { desc = "Inline var" })
vim.keymap.set("n", "<leader>rI", ":Refactor inline_func") vim.keymap.set("n", "<leader>rI", ":Refactor inline_func", { desc = "Inline function" })
vim.keymap.set("n", "<leader>rb", ":Refactor extract_block") vim.keymap.set("n", "<leader>rb", ":Refactor extract_block", { desc = "Extract block" })
vim.keymap.set("n", "<leader>rbf", ":Refactor extract_block_to_file") vim.keymap.set("n", "<leader>rbf", ":Refactor extract_block_to_file", { desc = "Extract block to new file" })
end, end,
} }

View File

@@ -13,19 +13,19 @@ return {
}) })
local builtin = require("telescope.builtin") local builtin = require("telescope.builtin")
vim.keymap.set("n", "<leader>pf", builtin.find_files, {}) vim.keymap.set("n", "<leader>tf", builtin.find_files, { desc = "Find files" })
vim.keymap.set("n", "<C-p>", builtin.git_files, {}) vim.keymap.set("n", "<C-p>", builtin.git_files, { desc = "Find git files" })
vim.keymap.set("n", "<leader>pws", function() vim.keymap.set("n", "<leader>tw", function()
local word = vim.fn.expand("<cword>") local word = vim.fn.expand("<cword>")
builtin.grep_string({ search = word }) builtin.grep_string({ search = word })
end) end, { desc = "Search files with <cword>" })
vim.keymap.set("n", "<leader>pWs", function() vim.keymap.set("n", "<leader>tW", function()
local word = vim.fn.expand("<cWORD>") local word = vim.fn.expand("<cWORD>")
builtin.grep_string({ search = word }) builtin.grep_string({ search = word })
end) end, { desc = "Search files with <cWORD>" })
vim.keymap.set("n", "<leader>ps", function() vim.keymap.set("n", "<leader>tg", function()
builtin.grep_string({ search = vim.fn.input("Grep > ") }) builtin.grep_string({ search = vim.fn.input("Grep > ") })
end) end, { desc = "Search files with grep" })
vim.keymap.set("n", "<leader>vh", builtin.help_tags, {}) vim.keymap.set("n", "<leader>th", builtin.help_tags, { desc = "Search help tags" })
end, end,
} }

View File

@@ -7,6 +7,6 @@ return {
opts = {}, opts = {},
config = function() config = function()
require("todo-comments").setup() require("todo-comments").setup()
vim.keymap.set("n", "<leader>ts", ":TodoTelescope cwd=") vim.keymap.set("n", "<leader>tt", ":TodoTelescope cwd=", { desc = "Search Todos" })
end, end,
} }

View File

@@ -1,19 +1,19 @@
return { return {
{ {
"folke/trouble.nvim", "folke/trouble.nvim",
opts = {}, opts = {},
cmd = "Trouble", cmd = "Trouble",
keys = { keys = {
{ {
"<leader>tt", "<leader>ot",
"<cmd>Trouble diagnostics toggle<cr>", "<cmd>Trouble diagnostics toggle<cr>",
desc = "Diagnostics (Trouble)", desc = "Toggle Diagnostics (Trouble)",
}, },
{ {
"<leader>tq", "<leader>oq",
"<cmd>Trouble qflist toggle<cr>", "<cmd>Trouble qflist toggle<cr>",
desc = "Quickfix List (Trouble)", desc = "Toggle Quickfix List (Trouble)",
}, },
}, },
}, },
} }

View File

@@ -1,9 +1,7 @@
return { return {
"mbbill/undotree", "mbbill/undotree",
config = function() config = function()
vim.keymap.set("n", "<leader>u", vim.cmd.UndotreeToggle) vim.keymap.set("n", "<leader>ou", vim.cmd.UndotreeToggle, { desc = "Toggle Undotree" })
end end,
} }

View File

@@ -11,4 +11,143 @@ return {
desc = "Buffer Local Keymaps (which-key)", desc = "Buffer Local Keymaps (which-key)",
}, },
}, },
config = function()
local harpoon = require("harpoon")
require("which-key").add({
{ "<leader>t", group = "Telescope" },
{ "<leader>o", group = "Open plugin", icon = { icon = "", color = "yellow" } },
{ "<leader>r", group = "Refactoring", mode = { "n", "x" } },
{ "<leader>v", group = "LSP Actions", icon = { icon = "󰅡" } },
-- Harpoon
-- Quick jumps and show list
{
"<A-e>",
function()
harpoon.ui:toggle_quick_menu(harpoon:list())
end,
},
{
"<A-h>",
function()
harpoon:list():select(1)
end,
},
{
"<A-j>",
function()
harpoon:list():select(2)
end,
},
{
"<A-k>",
function()
harpoon:list():select(3)
end,
},
{
"<A-l>",
function()
harpoon:list():select(4)
end,
},
-- Add files
{
"<leader>a",
function()
harpoon:list():add()
end,
desc = "Harpoon current file",
mode = "n",
icon = { icon = "󱡅", color = "blue" },
},
{
"<leader><A-h>",
function()
harpoon:list():replace_at(1)
end,
desc = "Harpoon at file 1",
mode = "n",
icon = { icon = "󱡅", color = "blue" },
},
{
"<leader><A-j>",
function()
harpoon:list():replace_at(2)
end,
desc = "Harpoon at file 2",
mode = "n",
icon = { icon = "󱡅", color = "blue" },
},
{
"<leader><A-k>",
function()
harpoon:list():replace_at(3)
end,
desc = "Harpoon at file 3",
mode = "n",
icon = { icon = "󱡅", color = "blue" },
},
{
"<leader><A-l>",
function()
harpoon:list():replace_at(4)
end,
desc = "Harpoon at file 4",
mode = "n",
icon = { icon = "󱡅", color = "blue" },
},
-- Custom binds
{
"<leader>y",
[["+y]],
desc = "Yank to system clipboard",
mode = { "n", "v" },
icon = { icon = "", color = "yellow" },
},
{
"<leader>Y",
[["+Y]],
desc = "Yank line to system clipboard",
mode = "n",
icon = { icon = "", color = "yellow" },
},
{
"<leader>p",
[["_dP]],
desc = "Paste over selection, preserving buffer",
mode = "x",
icon = { icon = "", color = "yellow" },
},
{
"<leader>d",
[["_d]],
desc = "Delete, preserving buffer",
mode = { "n", "v" },
icon = { icon = "", color = "red" },
},
{
"<leader>x",
"<cmd>!chmod +x %<CR>",
silent = true,
desc = "Make file executable",
icon = { icon = "", color = "red" },
},
-- Conform
{
"<leader>f",
function()
require("conform").format({ async = true })
end,
mode = "n",
desc = "Format file",
icon = { icon = "󰉼", color = "yellow" },
},
})
end,
} }

View File

@@ -1,7 +1,4 @@
vim.g.mapleader = " " vim.g.mapleader = " "
-- directory viewer
-- has been replaced with Oil.nvim, keybind "-"
-- vim.keymap.set("n", "<leader>pv", vim.cmd.Ex)
-- move highlighted lines up and down -- move highlighted lines up and down
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv") vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
@@ -13,38 +10,17 @@ vim.keymap.set("n", "<C-u>", "<C-u>zz")
vim.keymap.set("n", "n", "nzzzv") vim.keymap.set("n", "n", "nzzzv")
vim.keymap.set("n", "N", "Nzzzv") vim.keymap.set("n", "N", "Nzzzv")
-- pastes without replacing buffer
vim.keymap.set("x", "<leader>p", [["_dP]])
-- yanks to system clipboard
vim.keymap.set({ "n", "v" }, "<leader>y", [["+y]])
vim.keymap.set("n", "<leader>Y", [["+Y]])
-- deletes without replacing buffer
vim.keymap.set({ "n", "v" }, "<leader>d", [["_d]])
-- formats file using LSP
-- vim.keymap.set("n", "<leader>f", vim.lsp.buf.format)
vim.keymap.set("", "<leader>f", function()
require("conform").format({ async = true }, function(err)
if not err then
local mode = vim.api.nvim_get_mode().mode
if vim.startswith(string.lower(mode), "v") then
vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes("<Esc>", true, false, true), "n", true)
end
end
end)
end, { desc = "Format code" })
vim.keymap.set("n", "<C-k>", "<cmd>cnext<CR>zz") vim.keymap.set("n", "<C-k>", "<cmd>cnext<CR>zz")
vim.keymap.set("n", "<C-j>", "<cmd>cprev<CR>zz") vim.keymap.set("n", "<C-j>", "<cmd>cprev<CR>zz")
vim.keymap.set("n", "<leader>k", "<cmd>lnext<CR>zz") vim.keymap.set("n", "<leader>k", "<cmd>lnext<CR>zz", { desc = "Quickfix next" })
vim.keymap.set("n", "<leader>j", "<cmd>lprev<CR>zz") vim.keymap.set("n", "<leader>j", "<cmd>lprev<CR>zz", { desc = "Quickfix prev" })
vim.keymap.set("n", "<leader>s", [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]]) vim.keymap.set(
vim.keymap.set("n", "<leader>x", "<cmd>!chmod +x %<CR>", { silent = true }) "n",
"<leader>s",
vim.keymap.set("n", "<leader>o", "o<Esc>k") [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]],
{ desc = "Find and replace word" }
)
vim.keymap.set("n", "<C-Q>", function() vim.keymap.set("n", "<C-Q>", function()
if vim.inspect(vim.opt.colorcolumn:get()) == "{}" then if vim.inspect(vim.opt.colorcolumn:get()) == "{}" then