101 lines
4.9 KiB
Lua
101 lines
4.9 KiB
Lua
-- Universal Operations
|
|
-- n => new/create
|
|
-- q => quit/close
|
|
-- s => save/write
|
|
-- x => exit (save&quit)
|
|
-- d => delete/remove
|
|
-- r => rename/reload/refresh
|
|
-- o => open
|
|
-- a => add
|
|
-- A => all
|
|
-- e => edit
|
|
-- t => toggle
|
|
-- h/l => previous/next
|
|
-- j/k => last/first
|
|
|
|
local map = vim.keymap.set
|
|
-- Leader Key Groups
|
|
map("n", "<leader>b", "<Nop>", { desc = "+buffers" })
|
|
map("n", "<leader>c", "<Nop>", { desc = "+code" })
|
|
map("n", "<leader>d", "<Nop>", { desc = "+diagnostics" })
|
|
map("n", "<leader>e", "<Nop>", { desc = "+file actions" })
|
|
map("n", "<leader>f", "<Nop>", { desc = "+find" })
|
|
map("n", "<leader>g", "<Nop>", { desc = "+git" })
|
|
map("n", "<leader>l", "<Nop>", { desc = "+lazy" })
|
|
map("n", "<leader>m", "<Nop>", { desc = "+movement" })
|
|
map("n", "<leader>s", "<Nop>", { desc = "+search" })
|
|
map("n", "<leader>t", "<Nop>", { desc = "+tabs" })
|
|
map("n", "<leader>u", "<Nop>", { desc = "+ui" })
|
|
map("n", "<leader>w", "<Nop>", { desc = "+windows" })
|
|
map("n", "<leader>x", "<Nop>", { desc = "+quickfix" })
|
|
-- MacOs Style
|
|
map({ "n", "i", "v", "s" }, "<D-s>", "<cmd>w<cr><esc>", { desc = "Save File" })
|
|
map("n", "<D-z>", "u", { desc = "Undo" })
|
|
map("n", "<D-S-z>", "<C-r>", { desc = "Redo" })
|
|
map("n", "<D-a>", "gg<S-v>G", { desc = "Select all" })
|
|
map("n", "<C-j>", "<C-w>j", { desc = "Clear search highlight" })
|
|
-- Window
|
|
map("n", "<leader>wh", "<C-w>h", { desc = "Go to left window" })
|
|
map("n", "<leader>wj", "<C-w>j", { desc = "Go to lower window" })
|
|
map("n", "<leader>wk", "<C-w>k", { desc = "Go to upper window" })
|
|
map("n", "<leader>wl", "<C-w>l", { desc = "Go to right window" })
|
|
map("n", "<leader>w|", "<C-w>v", { desc = "Split vertically" })
|
|
map("n", "<leader>w-", "<C-w>s", { desc = "Split horizontally" })
|
|
map("n", "<leader>wq", "<C-w>c", { desc = "Close window" })
|
|
map("n", "<leader>wQ", "<C-w>o", { desc = "Close other windows" })
|
|
map("n", "<leader>w=", "<C-w>=", { desc = "Equal width/height" })
|
|
map("n", "<leader>ww", "<C-w>w", { desc = "Switch windows" })
|
|
map("n", "<M-h>", "<cmd>vertical resize -2<cr>", { desc = "Decrease width" })
|
|
map("n", "<M-l>", "<cmd>vertical resize +2<cr>", { desc = "Increase width" })
|
|
map("n", "<M-j>", "<cmd>resize -2<cr>", { desc = "Decrease height" })
|
|
map("n", "<M-k>", "<cmd>resize +2<cr>", { desc = "Increase height" })
|
|
-- Buffer
|
|
map("n", "<leader>bA", "<cmd>buffers<cr>", { desc = "List buffers" })
|
|
map("n", "<leader>bh", "<cmd>bprevious<cr>", { desc = "Previous buffer" })
|
|
map("n", "<leader>bl", "<cmd>bnext<cr>", { desc = "Next buffer" })
|
|
map("n", "<leader>bk", "<cmd>bfirst<cr>", { desc = "First buffer" })
|
|
map("n", "<leader>bj", "<cmd>blast<cr>", { desc = "Last buffer" })
|
|
map("n", "<leader>bd", "<cmd>bdelete<cr>", { desc = "Delete buffer" })
|
|
map("n", "<leader>bk", "<cmd>bprevious<cr>", { desc = "Previous buffer" })
|
|
-- Tabs
|
|
map("n", "<leader>tn", "<cmd>tabnew<cr>", { desc = "New Tab" })
|
|
map("n", "<leader>tq", "<cmd>tabclose<cr>", { desc = "Close tab" })
|
|
map("n", "<leader>tk", "<cmd>tabfirst<cr>", { desc = "First tab" })
|
|
map("n", "<leader>tj", "<cmd>tabfirst<cr>", { desc = "Last tab" })
|
|
map("n", "<leader>th", "<cmd>tabprevious<cr>", { desc = "Previous tab" })
|
|
map("n", "<leader>tl", "<cmd>tabnext<cr>", { desc = "Next tab" })
|
|
-- File Actions
|
|
map("n", "<leader>en", "<cmd>enew<cr>", { desc = "New file" })
|
|
map("n", "<leader>eq", "<cmd>q<cr>", { desc = "Quit file" })
|
|
map("n", "<leader>eQ", "<cmd>qa!<cr>", { desc = "Quit all" })
|
|
map("n", "<leader>ex", "<cmd>wq<cr>", { desc = "Save + quit file" })
|
|
-- Lazy
|
|
map("n", "<leader>ll", "<cmd>Lazy<cr>", { desc = "Lazy Plugin Manager" })
|
|
-- UI
|
|
map("n", "<leader>uw", "<cmd>set wrap!<cr>", { desc = "Toggle word wrap" })
|
|
map("n", "<leader>un", "<cmd>set number!<cr>", { desc = "Toggle line numbers" })
|
|
map("n", "<leader>ur", "<cmd>set relativenumber!<cr>", { desc = "Toggle relative number" })
|
|
-- Quickfixes
|
|
map("n", "<leader>xl", "<cmd>cnext<cr>", { desc = "Next quickfix" })
|
|
map("n", "<leader>xh", "<cmd>cprev<cr>", { desc = "Previous quickfix" })
|
|
map("n", "<leader>xo", "<cmd>copen<cr>", { desc = "Open quickfix" })
|
|
map("n", "<leader>xq", "<cmd>cclose<cr>", { desc = "Close quickfix" })
|
|
-- Movement
|
|
map("n", "j", "gj", { desc = "Move down (Wrapped Line)" })
|
|
map("n", "k", "gk", { desc = "Move up (Wrapped Line)" })
|
|
map("n", "<leader>mj", "<cmd>m .+1<cr>==", { desc = "Move line down" })
|
|
map("n", "<leader>mk", "<cmd>m .-2<cr>==", { desc = "Move line up" })
|
|
map("n", "<leader>mh", "{", { desc = "Previous paragraph" })
|
|
map("n", "<leader>ml", "}", { desc = "Next paragraph" })
|
|
map("v", "<leader>mj", ":m '>.+1<cr>gv=gv", { desc = "Move selection down" })
|
|
map("v", "<leader>mk", ":m '<-2<cr>gv=gv", { desc = "Move selection up" })
|
|
-- Identing
|
|
map("v", "<", "<gv", { desc = "Indent left" })
|
|
map("v", ">", ">gv", { desc = "Indent right" })
|
|
map("v", "<Tab>", ">gv", { desc = "Indent right" })
|
|
map("v", "<S-Tab>", "<gv", { desc = "Indent left" })
|
|
-- Help/Documentation
|
|
map("n", "<leader>?", "<cmd>Cheatsheet<cr>", { desc = "Show cheatsheet" })
|
|
-- Search for selection
|
|
map("v", "//", 'y/\\V<C-R>=escape(@",\'/\\\')<CR><CR>', { desc = "Search selection" })
|