-- unmap unwanted commands vim.keymap.set({ 'n', 'v' }, '', '', { silent = true }) vim.keymap.set({ 'n', 'i' }, '', '', { noremap = true }) vim.keymap.set('i', '', '', { noremap = true }) vim.keymap.set('i', '', '', { noremap = true }) vim.keymap.set('i', '', '', { noremap = true }) vim.keymap.set('i', '', '', { noremap = true }) vim.keymap.set('i', '', '', { noremap = true }) vim.keymap.set('i', '', '', { noremap = true }) vim.keymap.set({ 'n', 'i' }, '', '', { noremap = true }) vim.keymap.set({ 'n', 'i' }, '', '', { noremap = true }) vim.keymap.set({ 'n', 'i' }, '', '', { noremap = true }) vim.keymap.set({ 'n', 'i' }, '', '', { noremap = true }) -- shortcut for split navigation vim.keymap.set('n', '', 'h', { noremap = true }) vim.keymap.set('n', '', 'j', { noremap = true }) vim.keymap.set('n', '', 'k', { noremap = true }) vim.keymap.set('n', '', 'l', { noremap = true }) -- compiler for languages vim.keymap.set('n', 'c', ':w! | !compiler %', { noremap = true }) -- save file as sudo on files that require root permission vim.keymap.set('c', 'w!!', 'execute "silent! write !sudo tee % >/dev/null" edit!', { noremap = true }) -- easy substitution for whole file and line, visual mode vim.keymap.set('n', 'ss', ':%s/\\<\\>//g', { noremap = true }) vim.keymap.set({ 'n', 'v' }, 'sl', ':s//g', { noremap = true }) vim.keymap.set('n', 'sa', ':%s//g', { noremap = true }) -- highlighting yanked regions local highlight_group = vim.api.nvim_create_augroup('YankHighlight', { clear = true }) vim.api.nvim_create_autocmd('TextYankPost', { callback = function() vim.highlight.on_yank() end, group = highlight_group, }) -- remap for dealing with word wrap vim.keymap.set('n', 'k', "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = true }) vim.keymap.set('n', 'j', "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true }) -- SmiteshP/nvim-navbuddy vim.keymap.set('n', '', ':Navbuddy', {}) -- nvim-tree/nvim-tree.lua vim.keymap.set('n', '', ':NvimTreeToggle toggle', {}) -- numtostr/fterm.nvim vim.keymap.set({ 'n', 't' }, 't', require("FTerm").toggle, { noremap = true }) local lazygit = require("FTerm"):new({ cmd = 'lazygit', }) vim.keymap.set({ 'n', 't' }, 'gt', function() lazygit:toggle() end) -- sindrets/diffview.nvim vim.keymap.set('n', 'gdo', ":DiffviewOpen") vim.keymap.set('n', 'gdc', ":DiffviewClose") -- folke/trouble.nvim vim.keymap.set('n', 'x', ":TroubleToggle") -- hrsh7th/nvim-cmp vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, { noremap = true }) vim.keymap.set('n', 'gd', vim.lsp.buf.definition, { noremap = true }) vim.keymap.set('n', 'gy', vim.lsp.buf.type_definition, { noremap = true }) vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, { noremap = true }) vim.keymap.set('n', 'gr', vim.lsp.buf.references, { noremap = true }) vim.keymap.set('n', 'K', vim.lsp.buf.hover, { noremap = true }) vim.keymap.set('n', '', function() require("conform").format({ async = true, lsp_fallback = true }) end, { noremap = true }) -- filipdutescu/renamer.nvim vim.keymap.set('n', '', require("renamer").rename, { noremap = true }) -- nvim-telescope/telescope.nvim vim.keymap.set('n', '', ':Telescope find_files', { noremap = true }) -- kamykn/spelunker.vim vim.keymap.set('n', '', ':call spelunker#toggle()', { noremap = true }) vim.keymap.set('n', 'ZT', '', { noremap = true }) vim.keymap.set('n', 'Zt', '', { noremap = true }) -- kevinhwang91/nvim-ufo vim.keymap.set('n', 'K', function() local winid = require('ufo').peekFoldedLinesUnderCursor() if not winid then vim.lsp.buf.hover() end end)