Files
tools.nvim/lua/mzpx/core/keymaps.lua
T
mzpx 0adb83f3e4 Tuning config files
Finetuning of config files, formatting them
2026-06-26 16:25:37 +02:00

183 lines
7.8 KiB
Lua
Executable File

vim.g.mapleader = " "
local keymap = vim.keymap
local base_comment = ""
-- Modes
--
-- "n" = normal mode
-- "i" = insert mode
-- "v" = visual mode
-- "x" = visual block mode
-- "t" = term mode
-- "c" = command mode
--
-- ************************************************************************************************
--
-- NORMAL MODE
--
-- ************************************************************************************************
-- ------------------------------------------------------------------------------------------------
-- Window splitting
-- ------------------------------------------------------------------------------------------------
keymap.set( "n", "<leader>sv", "<C-w>v" , {desc = "slit widow vertically"} ) -- slit widow vertically
keymap.set( "n", "<leader>sh", "<C-w>s" , {desc = "split widow horizontaly"} ) -- split widow horizontaly
keymap.set( "n", "<leader>se", "<C-w>=" , {desc = "make split windows equal width"}) -- make split windows equal width
keymap.set( "n", "<leader>sx", ":close<CR>" , {desc = "close window"} ) -- close window
-- keymap.set( "n", "<leader>sm", ":MaximizerToggle<CR>" )
keymap.set( "n", "<leader>sm", '<cmd>lua require("maximizer").toggle()<CR>', {silent = true, noremap = true})
-- keymap.set('n', 'mm', '<cmd>lua require("maximizer").maximize()<CR>', {silent = true, noremap = true})
-- keymap.set('n', 'mr', '<cmd>lua require("maximizer").restore()<CR>', {silent = true, noremap = true})
--
-- ------------------------------------------------------------------------------------------------
-- Window navigation commans
-- ------------------------------------------------------------------------------------------------
keymap.set( "n", "<C-h>", "<C-w>h")
keymap.set( "n", "<C-j>", "<C-w>j")
keymap.set( "n", "<C-k>", "<C-w>k")
keymap.set( "n", "<C-l>", "<C-w>l")
-- ------------------------------------------------------------------------------------------------
-- Resize window with arrows
-- ------------------------------------------------------------------------------------------------
keymap.set( "n", "<A-h>", ":vertical resize -2<cr>")
keymap.set( "n", "<A-l>", ":vertical resize +2<cr>")
keymap.set( "n", "<A-k>", ":resize -2<cr>")
keymap.set( "n", "<A-j>", ":resize +2<cr>")
-- Buffers
keymap.set( "n", "<S-l>", ":bnext<cr>" ) -- next buffer
keymap.set( "n", "<S-h>", ":bprevious<cr>" ) -- prev buffer
keymap.set( "n", "<C-w>", ":bd<CR>" ) -- delete buffer
-- keymap.set( "n", "<C-TAB>", ":bnext<cr>" ) -- go to next tab
-- keymap.set( "n", "<C-S-TAB>", ":bprevious<CR>" ) -- go to prev tab
--
-- TABs
--
keymap.set( "n", "<leader>to", ":tabnew<CR>" ) -- open new tab
keymap.set( "n", "<leader>tx", ":tabclose<CR>" ) -- close current tab
keymap.set( "n", "<leader>tn", ":tabn<CR>" ) -- go to next tab
keymap.set( "n", "<leader>tp", ":tabp<CR>" ) -- go to prev tab
--
-- diagnostic warning/error navigation
--
keymap.set( "n", "g[", vim.diagnostic.goto_prev)
keymap.set( "n", "g]", vim.diagnostic.goto_next)
-- ----------------------------------------------------------------------------
-- Insert spectial text
-- ----------------------------------------------------------------------------
keymap.set( "n", "<leader><leader>d", ":pu=strftime('%Y-%m-%d')<CR>" , {desc = "Insert actual date"} )
keymap.set( "n", "<leader><leader>c",
"i-- ------------------------------------------------------------------------------------------------<CR><CR>" ..
"------------------------------------------------------------------------------------------------<CR><esc>",
{desc = "Insert main comment section"} )
keymap.set( "n", "yc", "yy<cmd>normal gcc<CR>p", { noremap = true, desc = "Duplicate line and comment original" })
keymap.set( "n", ",", "*" ) -- due to HUN keybard, the * hard to access:
keymap.set( "n", "<leader>nh", ":nohl<CR>")
keymap.set( "n", "x", '"_x"')
-- ************************************************************************************************
--
-- Insert mode
--
-- ************************************************************************************************
keymap.set( "i", "jk", "<ESC>")
-- ************************************************************************************************
--
-- Visual mode
--
-- ************************************************************************************************
-- Stay in indent mode
keymap.set( "v", "<", "<gv")
keymap.set( "v", ">", ">gv")
-- ------------------------------------------------------------------------------------------------
-- Visual Block --
-- ------------------------------------------------------------------------------------------------
keymap.set( "v", "<A-j>", ":m .+1<CR>==")
keymap.set( "v", "<A-k>", ":m .-2<CR>==")
keymap.set( "v", "p", '"_dP')
-- ************************************************************************************************
--
-- Visual Block Mode
--
-- ************************************************************************************************
-- ------------------------------------------------------------------------------------------------
-- Move text up and down
-- ------------------------------------------------------------------------------------------------
keymap.set( "x", "J", ":move '>+1<CR>gv-gv")
keymap.set( "x", "K", ":move '<-2<CR>gv-gv")
keymap.set( "x", "<A-j>", ":move '>+1<CR>gv-gv")
keymap.set( "x", "<A-k>", ":move '<-2<CR>gv-gv")
-- ************************************************************************************************
--
-- Terminal
--
-- ************************************************************************************************
-- ------------------------------------------------------------------------------------------------
-- Better terminal navigation
-- ------------------------------------------------------------------------------------------------
keymap.set( "t", "<C-h>", "<C-\\><C-N><C-w>h")
keymap.set( "t", "<C-j>", "<C-\\><C-N><C-w>j")
keymap.set( "t", "<C-k>", "<C-\\><C-N><C-w>k")
keymap.set( "t", "<C-l>", "<C-\\><C-N><C-w>l")
-- ------------------------------------------------------------------------------------------------
-- plugin keymaps
-- ------------------------------------------------------------------------------------------------
-- nvim-tree
keymap.set("n", "<leader>e", ":NvimTreeToggle<CR>", {desc = "File browser"})
-- telescope
--keymap.set("n", "<leader>ff", ":Telescope find_files<cr>" )
keymap.set("n", "<leader>ff", ":Files<cr>" , {desc = "File find (internal)"})
keymap.set("n", "<leader>fs", ":Telescope live_grep<cr>" , {desc = "File grep (internal)"} )
keymap.set("n", "<leader>fg", ":Rg<cr>")
keymap.set("n", "<leader>fb", ":Telescope buffers<cr>" , {desc = "Buffer search"} )
keymap.set("n", "<leader>fh", ":Telescope help_tags<cr>" , {desc = "help_tags search"} )
keymap.set("n", "<leader>x", "<cmd>lua require'telescope.builtin'."..
"find_files(require('telescope.themes')."..
"get_dropdown({ previewer = false }))<cr>")
keymap.set("n", "<c-t>", "<cmd>Telescope live_grep<cr>")
--
-- ------------------------------------------------------------------------------------------------
-- Langmap
-- ------------------------------------------------------------------------------------------------
--
keymap.set("n", "ő", "{")
keymap.set("n", "Ő", "[")
keymap.set("n", "ú", "}")
keymap.set("n", "Ú", "]")
keymap.set("v", ",", "<gv" , {desc = "Ident left <--"} )
keymap.set("v", ".", ">gv" , {desc = "Ident right -->"} )