{ globals.mapleader = " "; keymaps = [ # better up/down { mode = ["n" "x"]; key = "j"; action = "v:count == 0 ? 'gj' : 'j'"; options = { desc = "Down"; expr = true; silent = true; }; } { mode = ["n" "x"]; key = ""; action = "v:count == 0 ? 'gj' : 'j'"; options = { desc = "Down"; expr = true; silent = true; }; } { mode = ["n" "x"]; key = "k"; action = "v:count == 0 ? 'gk' : 'k'"; options = { desc = "Up"; expr = true; silent = true; }; } { mode = ["n" "x"]; key = ""; action = "v:count == 0 ? 'gk' : 'k'"; options = { desc = "Up"; expr = true; silent = true; }; } # Clear search with { mode = ["i" "n"]; key = ""; action = "noh"; options = { desc = "Escape and Clear hlsearch"; }; } # Add undo break-points { mode = "i"; key = ","; action = ",u"; } { mode = "i"; key = "."; action = ".u"; } { mode = "i"; key = ";"; action = ";u"; } # Move to window using the hjkl keys { mode = "n"; key = ""; action = "h"; options = { desc = "Go to Left Window"; remap = true; }; } { mode = "n"; key = ""; action = "j"; options = { desc = "Go to Lower Window"; remap = true; }; } { mode = "n"; key = ""; action = "k"; options = { desc = "Go to Upper Window"; remap = true; }; } { mode = "n"; key = ""; action = "l"; options = { desc = "Go to Right Window"; remap = true; }; } # Resize window using arrow keys { mode = "n"; key = ""; action = "resize +2"; options = {desc = "Increase Window Height";}; } { mode = "n"; key = ""; action = "resize -2"; options = {desc = "Decrease Window Height";}; } { mode = "n"; key = ""; action = "vertical resize -2"; options = {desc = "Decrease Window Width";}; } { mode = "n"; key = ""; action = "vertical resize +2"; options = {desc = "Increase Window Width";}; } # General maps { mode = "n"; key = "f"; action = "+find/file"; } { mode = "n"; key = "s"; action = "+search"; } { mode = "n"; key = "q"; action = "+quit/session"; } { mode = ["n" "v"]; key = "g"; action = "+git"; } { mode = "n"; key = "u"; action = "+ui"; } { mode = "n"; key = "w"; action = "+windows"; } { mode = "n"; key = ""; action = "+tab"; } { mode = ["n" "v"]; key = "d"; action = "+debug"; } { mode = ["n" "v"]; key = "c"; action = "+code"; } { mode = ["n" "v"]; key = "t"; action = "+test"; } # Tabs { mode = "n"; key = "l"; action = "tablast"; options = { silent = true; desc = "Last tab"; }; } { mode = "n"; key = "f"; action = "tabfirst"; options = { silent = true; desc = "First Tab"; }; } { mode = "n"; key = ""; action = "tabnew"; options = { silent = true; desc = "New Tab"; }; } { mode = "n"; key = "]"; action = "tabnext"; options = { silent = true; desc = "Next Tab"; }; } { mode = "n"; key = "d"; action = "tabclose"; options = { silent = true; desc = "Close tab"; }; } { mode = "n"; key = "["; action = "tabprevious"; options = { silent = true; desc = "Previous Tab"; }; } # Windows { mode = "n"; key = "ww"; action = "p"; options = { silent = true; desc = "Other window"; }; } { mode = "n"; key = "wd"; action = "c"; options = { silent = true; desc = "Delete window"; }; } { mode = "n"; key = "w-"; action = "s"; options = { silent = true; desc = "Split window below"; }; } { mode = "n"; key = "w|"; action = "v"; options = { silent = true; desc = "Split window right"; }; } # { # mode = "n"; # key = "-"; # action = "s"; # options = { # silent = true; # desc = "Split window below"; # }; # } # { # mode = "n"; # key = "|"; # action = "v"; # options = { # silent = true; # desc = "Split window right"; # }; # } { mode = "n"; key = ""; action = "w"; options = { silent = true; desc = "Save file"; }; } # Quit/Session { mode = "n"; key = "qq"; action = "quitall"; options = { silent = true; desc = "Quit all"; }; } { mode = "n"; key = "qs"; action = ":lua require('persistence').load()"; options = { silent = true; desc = "Restore session"; }; } { mode = "n"; key = "ql"; action = "lua require('persistence').load({ last = true })"; options = { silent = true; desc = "Restore last session"; }; } { mode = "n"; key = "qd"; action = "lua require('persistence').stop()"; options = { silent = true; desc = "Don't save current session"; }; } { mode = "n"; key = "ul"; action = ":lua ToggleLineNumber()"; options = { silent = true; desc = "Toggle Line Numbers"; }; } { mode = "n"; key = "uL"; action = ":lua ToggleRelativeLineNumber()"; options = { silent = true; desc = "Toggle Relative Line Numbers"; }; } { mode = "n"; key = "uw"; action = ":lua ToggleWrap()"; options = { silent = true; desc = "Toggle Line Wrap"; }; } { mode = "v"; key = "J"; action = ":m '>+1gv=gv"; options = { silent = true; desc = "Move up when line is highlighted"; }; } { mode = "v"; key = "K"; action = ":m '<-2gv=gv"; options = { silent = true; desc = "Move down when line is highlighted"; }; } { mode = "n"; key = "J"; action = "mzJ`z"; options = { silent = true; desc = "Allow cursor to stay in the same place after appeding to current line"; }; } # better indenting { mode = "v"; key = "<"; action = " + y or just y to have it just in vim { mode = ["n" "v"]; key = "y"; action = "\"+y"; options = { desc = "Copy to system clipboard"; }; } { mode = ["n" "v"]; key = "Y"; action = "\"+Y"; options = { desc = "Copy to system clipboard"; }; } # Delete to void register { mode = ["n" "v"]; key = "D"; action = "\"_d"; options = { desc = "Delete to void register"; }; } # instead of pressing esc just because { mode = "i"; key = ""; action = ""; } { mode = "n"; key = ""; action = "!tmux new tmux-sessionizer"; options = { desc = "Switch between projects"; }; } ]; extraConfigLua = '' local notify = require("notify") local function show_notification(message, level) notify(message, level, { title = "conform.nvim" }) end function ToggleLineNumber() if vim.wo.number then vim.wo.number = false show_notification("Line numbers disabled", "info") else vim.wo.number = true vim.wo.relativenumber = false show_notification("Line numbers enabled", "info") end end function ToggleRelativeLineNumber() if vim.wo.relativenumber then vim.wo.relativenumber = false show_notification("Relative line numbers disabled", "info") else vim.wo.relativenumber = true vim.wo.number = false show_notification("Relative line numbers enabled", "info") end end function ToggleWrap() if vim.wo.wrap then vim.wo.wrap = false show_notification("Wrap disabled", "info") else vim.wo.wrap = true vim.wo.number = false show_notification("Wrap enabled", "info") end end if vim.lsp.inlay_hint then vim.keymap.set('n', 'uh', function() vim.lsp.inlay_hint(0, nil) end, { desc = 'Toggle Inlay Hints' }) end ''; }