171 lines
7.3 KiB
Lua
171 lines
7.3 KiB
Lua
local icons = require("lib.icons")
|
|
return {
|
|
"folke/which-key.nvim",
|
|
event = "UIEnter",
|
|
opts = {
|
|
preset = "helix",
|
|
icons = {
|
|
breadcrumb = icons.ui.ArrowOpen,
|
|
separator = icons.ui.Arrow,
|
|
group = "",
|
|
keys = {
|
|
Space = icons.ui.Rocket,
|
|
},
|
|
rules = false, -- enable auto icon rules
|
|
},
|
|
triggers = {
|
|
{ "<auto>", mode = "nixsotc" },
|
|
{ "<leader>", mode = { "n", "v" } },
|
|
},
|
|
spec = {
|
|
mode = { "n", "v" },
|
|
{ "[", group = " Previous" },
|
|
{ "]", group = " Next" },
|
|
{ "<leader>b", group = " Debug" },
|
|
{ "<leader>c", group = " Code" },
|
|
{ "<leader>C", group = " Comment" },
|
|
{ "<leader>d", group = " Database" },
|
|
{ "<leader>e", group = " Edit" },
|
|
{ "<leader>f", group = " Find" },
|
|
{ "<leader>i", group = " Insert" },
|
|
{ "<leader>j", group = " Jump" },
|
|
{ "<leader>k", group = " Keys" },
|
|
{ "<leader>l", group = " LSP" },
|
|
{ "<leader>m", group = " Misc" },
|
|
{ "<leader>n", group = " Notes" },
|
|
{ "<leader>q", group = " Quit" },
|
|
{ "<leader>r", group = " Run" },
|
|
{ "<leader>s", group = " Split" },
|
|
{ "<leader>t", group = " Terminal" },
|
|
{ "<leader>u", group = " Test" },
|
|
{ "<leader>v", group = " Select" },
|
|
{ "<leader>w", group = " Writing" },
|
|
{ "<leader>x", group = " Diagnostics/Quickfix" },
|
|
{ "<leader>y", group = " Yank" },
|
|
},
|
|
},
|
|
keys = {
|
|
{
|
|
"<leader>?",
|
|
function()
|
|
require("which-key").show({ global = false })
|
|
end,
|
|
desc = " Buffer Local Keymaps (which-key)",
|
|
},
|
|
-- other keymaps
|
|
{ "<leader>cR", "<cmd>ReloadConfig<cr>", desc = "Reload Configs" },
|
|
{ "<leader>cd", "<cmd>RootDir<cr>", desc = "Root Directory" },
|
|
{ "<leader>cc", "<cmd>:g/^\\s*$/d<cr>", desc = "Clean Empty Lines" },
|
|
{ "<leader>co", "<cmd>Dashboard<cr>", desc = "Dashboard" },
|
|
{ "<leader>cr", "<cmd>Telescope reloader<cr>", desc = "Reload Module" },
|
|
--edit
|
|
{ "<leader>ea", "<cmd>b#<cr>", desc = "Alternate File" },
|
|
{ "<leader>ec", "<cmd>e $MYVIMRC<cr>", desc = "Config" },
|
|
{
|
|
"<leader>ed",
|
|
'<cmd>lua require("telescope.builtin").find_files({cwd = vim.fn.stdpath("config")})<cr>',
|
|
desc = "Config Dir",
|
|
},
|
|
{ "<leader>em", "<cmd>e README.md<cr>", desc = "Readme" },
|
|
{ "<leader>en", "<cmd>enew<cr>", desc = "New File" },
|
|
-- split
|
|
{ "<leader>s+", "<cmd>resize +10<cr>", desc = "Increase window height" },
|
|
{ "<leader>s-", "<cmd>vertical resize -20<cr>", desc = "Decrease window width" },
|
|
{ "<leader>s/", "<C-w>s", desc = "Split Below" },
|
|
{ "<leader>s=", "<cmd>vertical resize +20<cr>", desc = "Increase window width" },
|
|
{ "<leader>sH", "<cmd>vertical resize -10<cr>", desc = "Decrease window width" },
|
|
{ "<leader>sJ", "<cmd>resize -5<cr>", desc = "Decrease window height" },
|
|
{ "<leader>sK", "<cmd>resize +5<cr>", desc = "Increase window height" },
|
|
{ "<leader>sL", "<cmd>vertical resize +10<cr>", desc = "Increase window width" },
|
|
{ "<leader>s\\", "<C-w>v", desc = "Split Right" },
|
|
{ "<leader>s_", "<cmd>resize -10<cr>", desc = "Decrease window height" },
|
|
{ "<leader>s`", "<C-w>p", desc = "Previous Window" },
|
|
{ "<leader>sa", "<cmd>split<cr>", desc = "Horizontal Split" },
|
|
{ "<leader>sc", "<cmd>tabclose<cr>", desc = "Close Tab" },
|
|
{ "<leader>sf", "<cmd>tabfirst<cr>", desc = "First Tab" },
|
|
{ "<leader>sh", "<C-w>h", desc = "Move Left" },
|
|
{ "<leader>sj", "<C-w>j", desc = "Move Down" },
|
|
{ "<leader>sk", "<C-w>k", desc = "Move Up" },
|
|
{ "<leader>sl", "<C-w>l", desc = "Move Right" },
|
|
{ "<leader>sp", "<cmd>NavigatorPrevious<cr>", desc = "Previous Pane" },
|
|
{ "<leader>sq", "<C-w>c", desc = "Close Split" },
|
|
{ "<leader>ss", "<cmd>vsplit<cr>", desc = "Vertical Split" },
|
|
-- select
|
|
{ "<leader>vB", "vab", desc = "Around Bracket" },
|
|
{ "<leader>vP", "vap", desc = "Around Para" },
|
|
{ "<leader>vQ", "vaq", desc = "Around Quote" },
|
|
{ "<leader>vb", "vib", desc = "Bracket" },
|
|
{ "<leader>vp", "vip", desc = "Paragraph" },
|
|
{ "<leader>vq", "viq", desc = "Quote" },
|
|
-- writing
|
|
{ "<leader>wc", "<cmd>set spell!<cr>", desc = "Spellcheck" },
|
|
{ "<leader>wf", "<cmd>lua require'utils'.sudo_write()<cr>", desc = "Force Write" },
|
|
{ "<leader>wj", "]s", desc = "Next Misspell" },
|
|
{ "<leader>wk", "[s", desc = "Prev Misspell" },
|
|
{ "<leader>wq", "<cmd>wq<cr>", desc = "Write and Quit" },
|
|
{ "<leader>ws", "<cmd>Telescope spell_suggest<cr>", desc = "Suggestions" },
|
|
{ "<leader>ww", "<cmd>w<cr>", desc = "Write and Quit" },
|
|
{ "<leader>x", "<cmd>x<cr>", desc = " Save and Quit" },
|
|
--quit
|
|
{ "<leader>qa", "<cmd>qall<cr>", desc = "Quit All" },
|
|
{ "<leader>qc", "<cmd>bw<cr>", desc = "Close Buffer" },
|
|
{ "<leader>qd", "<cmd>bdelete<cr>", desc = "Delete Buffer" },
|
|
{ "<leader>qf", "<cmd>qall!<cr>", desc = "Force Quit" },
|
|
{ "<leader>qo", ":%bdelete|b#|bdelete#<cr>", desc = "Close Others" },
|
|
{ "<leader>qq", "<cmd>q<cr>", desc = "Quit" },
|
|
{ "<leader>qs", "<C-w>c", desc = "Close Split" },
|
|
{ "<leader>qw", "<cmd>wq<cr>", desc = "Write and Quit" },
|
|
-- insert
|
|
{ "<leader>iP", "<cmd>put %:p<cr>", desc = "Absolute Path" },
|
|
{ "<leader>id", "<cmd>put =strftime('## %a, %d %b, %Y, %r')<cr>", desc = "Date" },
|
|
{ "<leader>ie", "<cmd>Telescope symbols<cr>", desc = "Emojis" },
|
|
{ "<leader>if", "<cmd>put =expand('%:t')<cr>", desc = "File Name" },
|
|
{ "<leader>in", "<cmd>Nerdy<cr>", desc = "Nerd Glyphs" },
|
|
{ "<leader>ip", "<cmd>put %<cr>", desc = "Relative Path" },
|
|
{ "<leader>ir", "<cmd>Telescope registers<cr>", desc = "Registers" },
|
|
{ "<leader>it", "<cmd>put =strftime('## %r')<cr>", desc = "Time" },
|
|
|
|
-- Visiual Mode
|
|
{ "<leader>cS", ":sort!<cr>", mode = "v", desc = "Sort Desc" },
|
|
{ "<leader>ci", ":sort i<cr>", mode = "v", desc = "Sort Case Insensitive" },
|
|
{ "<leader>cs", ":sort<cr>", mode = "v", desc = "Sort Asc" },
|
|
{ "<leader>cu", ":!uniq<cr>", mode = "v", desc = "Unique" },
|
|
|
|
{ "<leader>la", mode = "v", desc = "<cmd><C-U>Lspsaga range_code_action<CR>" },
|
|
|
|
-- no leader
|
|
{ "[B", "<cmd>bfirst<cr>", desc = "First Buffer" },
|
|
{ "[b", "<cmd>bprevious<cr>", desc = "Buffer" },
|
|
{ "[d", "<cmd>Lspsaga diagnostic_jump_prev<cr>", desc = "Diagnostic" },
|
|
{ "[e", "g;", desc = "Edit" },
|
|
{ "[j", "<C-o>", desc = "Jump" },
|
|
|
|
{ "]", group = " Next" },
|
|
{ "]B", "<cmd>blast<cr>", desc = "Buffer" },
|
|
{ "]b", "<cmd>bnext<cr>", desc = "Buffer" },
|
|
{ "]d", "<cmd>Lspsaga diagnostic_jump_next<cr>", desc = "Diagnostic" },
|
|
{ "]e", "g,", desc = "Edit" },
|
|
{ "]j", "<C-i>", desc = "Jump" },
|
|
|
|
{ "<C-Down>", "<cmd>resize -10<cr>", desc = "Decrease window height" },
|
|
{ "<C-Left>", "<cmd>vertical resize -10<cr>", desc = "Decrease window width" },
|
|
{ "<C-Right>", "<cmd>vertical resize +10<cr>", desc = "Increase window width" },
|
|
{ "<C-Up>", "<cmd>resize +10<cr>", desc = "Increase window height" },
|
|
{ "<A-e>", "<cmd>Telescope find_files<cr>", desc = "Find Files" },
|
|
{ "<A-f>", "<cmd>Telescope file_browser<cr>", desc = "Find browser" },
|
|
|
|
{ "<C-h>", "<C-w>h", desc = "Move Left" },
|
|
{ "<C-j>", "<C-w>j", desc = "Move Down" },
|
|
{ "<C-k>", "<C-w>k", desc = "Move Up" },
|
|
{ "<C-l>", "<C-w>l", desc = "Move Right" },
|
|
{ "<C-\\>", "<C-w>p", desc = "Previous Pane" },
|
|
|
|
{ "<S-tab>", "<cmd>bprevious<cr>", desc = "Previous Buffer" },
|
|
{ "<tab>", "<cmd>bnext<cr>", desc = "Next Buffer" },
|
|
|
|
{ "K", "<cmd>Lspsaga hover_doc<cr>", desc = "LSP Hover" },
|
|
{ "Q", "<cmd>qall!<cr>", desc = "Force Quit!" },
|
|
{ "U", "<cmd>redo<cr>", desc = "Redo" },
|
|
},
|
|
}
|