Created
February 8, 2022 14:13
-
-
Save JSchrtke/cabd3e42a6920ef1f0835bd7ae286aad to your computer and use it in GitHub Desktop.
which-key.nvim mappings
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
" ### Configure which-key.nvim/mappings ### | |
" quickly navigate quickfix entries | |
nnoremap <C-n> :cnext<CR> | |
nnoremap <C-p> :cprevious<CR> | |
nnoremap <C-e> :lua require("telescope").extensions.file_browser.file_browser(require("telescope.themes").get_ivy())<CR> | |
lua << EOF | |
local wk = require("which-key") | |
t = require('telescope.builtin') | |
t_ext = require('telescope').extensions | |
-- Normal mode, no <leader> prefix | |
wk.register({ | |
["gd"] = {"<cmd>lua vim.lsp.buf.definition()<CR>", "go to definition"}, | |
["gt"] = {"next tab"}, | |
["gT"] = {"previous tab"}, | |
}) | |
-- Normal mode, <leader> prefix | |
wk.register({ | |
-- ignored keys | |
["1"] = "which_key_ignore", | |
["2"] = "which_key_ignore", | |
["3"] = "which_key_ignore", | |
["4"] = "which_key_ignore", | |
["5"] = "which_key_ignore", | |
["6"] = "which_key_ignore", | |
["7"] = "which_key_ignore", | |
["8"] = "which_key_ignore", | |
["9"] = "which_key_ignore", | |
["<cr>"] = {"<cmd>Ttoggle<CR>", "toggle terminal"}, | |
h = {"<cmd>wincmd h<CR>", "move left"}, | |
j = {"<cmd>wincmd j<CR>", "move down"}, | |
k = {"<cmd>wincmd k<CR>", "move up"}, | |
l = {"<cmd>wincmd l<CR>", "move right"}, | |
c = { | |
name = "+create", | |
t = {"<cmd>tabnew<cr>", "new tab"}, | |
}, | |
-- open | |
o = { | |
name = "+open", | |
f = {"<cmd>lua t.find_files()<CR>", "file"}, | |
e = {"<cmd>lua t_ext.file_browser.file_browser()<CR>", "file explorer"}, | |
r = {"<cmd>lua t.oldfiles()<CR>", "recent"}, | |
b = {"<cmd>lua t.buffers()<CR>", "buffer"}, | |
p = {"<cmd>Telescope project<CR>", "project"}, | |
gb = {"<cmd>lua t.git_branches()<CR>", "git branch"}, | |
gc = {"<cmd>lua t.git_commits()<CR>", "git commit"}, | |
}, | |
-- find | |
f = { | |
name = "+find", | |
f = {"<cmd>lua t.current_buffer_fuzzy_find()<CR>", "in file"}, | |
-- for syntax documentation see https://docs.rs/regex/1.5.4/regex/#syntax | |
d = {"<cmd>lua t.live_grep()<CR>", "in directory"}, | |
w = {"<cmd>lua t.grep_string()<CR>", "word"}, | |
s = {"<cmd>lua t.lsp_document_symbols()<CR>", "document symbols"}, | |
S = {"<cmd>lua t.lsp_workspace_symbols()<CR>", "workspace symbols"}, | |
q = {"<cmd>lua t.quickfix()<CR>", "in quickfix list"}, | |
h = {"<cmd>lua t.help_tags()<CR>", "in help"}, | |
r = {"<cmd>lua t.lsp_references()<CR>", "references"}, | |
t = {"<cmd>lua t_ext.todo.todo()<CR>", "todos"}, | |
}, | |
-- window | |
w = { | |
name = "+window", | |
h = {"<cmd>vsplit<CR>", "split left"}, | |
j = {"<cmd>split<bar>wincmd j<CR>", "split down"}, | |
k = {"<cmd>split<CR>", "split up"}, | |
l = {"<cmd>vsplit<bar>wincmd l<CR>", "split right"}, | |
p = {"<cmd>lua require('nvim-window').pick()<CR>", "pick window"}, | |
r = {"<cmd>WinResizerStartResize<CR>", "resize mode"}, | |
e = {"<cmd>wincmd =<CR>", "equalize size"}, | |
m = { "<cmd>WinShift<CR>", "toggle window move mode"}, | |
s = { "<cmd>WinShift swap<CR>", "toggle window swap mode"}, | |
z = {"<cmd>ZenMode<CR>", "toggle zen mode"}, | |
t = {"<cmd>wincmd T<CR>", "breakout into new tab"}, | |
}, | |
-- quit | |
q = { | |
name = "+quit", | |
w = {"<cmd>q<CR>", "window"}, | |
W = {"<cmd>wincmd o<CR>", "all other windows"}, | |
b = {"<cmd>Bdelete<CR>", "buffer"}, | |
B = {"<cmd>BufOnly!<CR>", "all other buffers"}, | |
t = {"<cmd>tabclose<CR>", "tab"}, | |
T = {"<cmd>tabonly<CR>", "all other tabs"}, | |
q = {"<cmd>cclose<CR>", "quickfix list"}, | |
}, | |
-- go | |
g = { | |
name = "+go", | |
D = {"<cmd>lua vim.lsp.buf.declaration()<CR>", "declaration"}, | |
d = {"<cmd>lua vim.lsp.buf.definition()<CR>", "definition"}, | |
i = {"<cmd>lua vim.lsp.buf.implementation()<CR>", "implementation"}, | |
t = {"<cmd>lua vim.lsp.buf.type_definition()<CR>", "type definition"}, | |
}, | |
-- show | |
s = { | |
name = "+show", | |
E = {"<cmd>Trouble workspace_diagnostics<CR>", "workspace errors"}, | |
c = {"<cmd>lua t_ext.neoclip.default()<CR>", "clipboard"}, | |
d = { | |
function() | |
require("gitsigns.actions").diffthis() | |
vim.cmd("windo set foldcolumn=0") | |
end, | |
"git diff" | |
}, | |
D = {"<cmd>Dirbuf<CR>", "directory buffer"}, | |
e = {"<cmd>lua vim.diagnostic.open_float()<CR>", "line errors"}, | |
h = {"<cmd>lua vim.lsp.buf.hover()<CR>", "hover"}, | |
i = {"<cmd>lua vim.lsp.buf.signature_help()<CR>", "signature_help"}, | |
l = {"<cmd>Flog<CR>", "git log"}, | |
q = {"<cmd>copen<CR>", "quickfix list"}, | |
s = {"<cmd>G<CR>", "git status"}, | |
t = {"<cmd>TodoTrouble<CR>", "todos"}, | |
r = {"<cmd>lua vim.lsp.buf.references()<CR>", "lsp references"}, | |
}, | |
-- run | |
r = { | |
name = "+run", | |
R = {"<cmd>lua require('spectre').open()<CR><bar><cmd>wincmd T<CR>", "search & replace"}, | |
w = {"<cmd>lua require('spectre').open_visual({select_word=true})<CR><bar><cmd>wincmd T<CR>", "replace word"}, | |
a = {"<cmd>lua t.lsp_code_actions(require('telescope.themes').get_cursor({}))<CR>", "code action"}, | |
r = {"<cmd>lua vim.lsp.buf.rename()<CR>", "rename"}, | |
}, | |
-- terminal | |
t = { | |
name = "+terminal", | |
c = {"<cmd>T clear<CR>", "clear"}, | |
}, | |
-- diff | |
d = { | |
name = "+diff", | |
g = {"<cmd>diffget<cr>", "get"}, | |
p = {"<cmd>diffput<cr>", "put"}, | |
}, | |
-- next | |
n = { | |
name = "+next", | |
e = {"<cmd>silent lua vim.lsp.diagnostic.goto_next()<cr>", "error"}, | |
q = {"<cmd>cnext<cr>", "quickfix item"}, | |
t = {"<cmd>lua require('trouble').next({skip_groups = true, jump = true})<cr>", "trouble"}, | |
c = {"<cmd>lua require('gitsigns.actions').next_hunk()<CR>", "change"}, | |
}, | |
-- previous | |
p = { | |
name = "+previous", | |
e = {"<cmd>silent lua vim.lsp.diagnostic.goto_prev()<cr>", "error"}, | |
q = {"<cmd>cprevious<cr>", "quickfix item"}, | |
t = {"<cmd>lua require('trouble').previous({skip_groups = true, jump = true})<cr>", "trouble"}, | |
c = {"<cmd>lua require('gitsigns.actions').prev_hunk()<CR>", "change"}, | |
}, | |
}, { prefix = "<leader>"}) | |
-- visual mode, <leader> prefix | |
wk.register({ | |
d = { | |
name = "+diff", | |
g = {"<cmd>'<,'>diffget<cr>", "get"}, | |
p = {"<cmd>'<,'>diffput<cr>", "put"}, | |
}, | |
}, {prefix = "<leader>", mode = "v"}) | |
EOF |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment