Files
neovim-config/lua/config/keybinds.lua
T
2026-07-12 23:58:37 +02:00

65 lines
2.2 KiB
Lua

vim.api.nvim_create_user_command("W", "update", { nargs = "?" })
local bind = vim.keymap.set
vim.g.mapleader = ","
bind("n", "<leader>v", "<cmd>vsp<cr><C-w>l", { desc = "Vertical split" })
bind("n", "<leader>e", "<cmd>e .<cr><cmd>set relativenumber<cr>", { desc = "Netrw file manager" })
-- Buffer navigation
bind("n", "<M-l>", "<cmd>bp<cr>", { desc = "Buffer previous" })
bind("n", "<M-h>", "<cmd>bn<cr>", { desc = "Buffer next" })
bind("n", "<M-Down>", "<cmd>CloseOpenBuff<cr>", { desc = "Buffer close" })
-- Buffer resize
bind("n", "<leader>+", "<cmd>vertical resize +5<cr>", { desc = "Buffer increase size" })
bind("n", "<leader>-", "<cmd>vertical resize -5<cr>", { desc = "Buffer decrease size" })
-- Tab movements
bind("n", "<C-M-n>", "<cmd>tabnew<cr>", { desc = "New tab" })
bind("n", "<C-M-Down>", "<cmd>tabclose<cr>", { desc = "Close tab" })
bind("n", "<C-M-l>", "<cmd>tabnext<cr>", { desc = "Next tab" })
bind("n", "<C-M-h>", "<cmd>tabprevious<cr>", { desc = "Previous tab" })
-- Movements into buffer
bind("n", "<C-d>", "<C-d>zz", { desc = "Center cursor after page down" })
bind("n", "<C-u>", "<C-u>zz", { desc = "Center cursor after page up" })
-- Move lines in visual mode
bind("v", "K", ":m '<-2<cr>gv=gv", { desc = "Move highlighted lines up" })
bind("v", "J", ":m '>+1<cr>gv=gv", { desc = "Move highlighted lines down" })
-- Text cleaning
bind("n", "<leader>w", "<cmd>%s/\\s\\+$/<cr><cmd>nohlsearch<cr>", { desc = "Delete white spaces at end of each line" })
-- Quick fix list
bind("n", "<leader>cc", "<cmd>cclose<cr>")
bind("n", "<leader>co", "<cmd>copen<cr>")
-- Oil vim
vim.keymap.set("n", "<M-1>", function()
local dir = vim.fn.expand("%:p:h")
if dir == "" then
dir = vim.loop.cwd()
end
require("oil").open(dir)
end, { desc = "Open Oil in current file directory" })
-- Conform
vim.api.nvim_create_user_command("FormatConform", function(opts)
require("conform").format()
end, {
desc = "Format current buffer",
})
bind("n", "<leader><C-M-l>", "<cmd>FormatConform<cr>")
-- Lsp
bind("n", "<leader>e", vim.diagnostic.open_float)
bind("n", "<leader>gl", vim.diagnostic.setloclist)
bind("n", "<leader>gf", vim.diagnostic.setqflist)
bind("n", "<leader>f", vim.lsp.buf.format)
bind("n", "K", vim.lsp.buf.hover)
bind("n", "<leader>k", vim.lsp.buf.signature_help)