From 252544af196cd6b2677e2337b9d9d58e3e372013 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Pankowski?= Date: Sat, 16 Sep 2023 09:36:04 +0200 Subject: [PATCH] nvim: remap keys, fix tab menu getcwd when tabs deleted --- nvim/.config/nvim/after/plugin/lspconfig.lua | 2 +- nvim/.config/nvim/lua/lupan/options.lua | 8 ++++++++ nvim/.config/nvim/lua/lupan/remap.lua | 13 +++++++++++++ nvim/.config/nvim/lua/plugins/git.lua | 11 +++++++---- nvim/.config/nvim/lua/plugins/telescope-tabs.lua | 13 +++++++++++-- 5 files changed, 40 insertions(+), 7 deletions(-) diff --git a/nvim/.config/nvim/after/plugin/lspconfig.lua b/nvim/.config/nvim/after/plugin/lspconfig.lua index eec6047..6cd1207 100644 --- a/nvim/.config/nvim/after/plugin/lspconfig.lua +++ b/nvim/.config/nvim/after/plugin/lspconfig.lua @@ -21,7 +21,7 @@ local on_attach = function(_, bufnr) -- See `:help K` for why this keymap nmap('K', vim.lsp.buf.hover, 'Hover Documentation') - nmap('k', vim.lsp.buf.signature_help, 'Signature Documentation') + nmap('K', vim.lsp.buf.signature_help, 'Signature Documentation') -- Lesser used LSP functionality nmap('gD', vim.lsp.buf.declaration, '[G]oto [D]eclaration') diff --git a/nvim/.config/nvim/lua/lupan/options.lua b/nvim/.config/nvim/lua/lupan/options.lua index 469514a..171c3b0 100644 --- a/nvim/.config/nvim/lua/lupan/options.lua +++ b/nvim/.config/nvim/lua/lupan/options.lua @@ -34,3 +34,11 @@ vim.o.completeopt = 'menuone,noselect' vim.o.termguicolors = true vim.o.scrolloff = 8 + +vim.o.tabstop = 4 +vim.o.softtabstop = 4 +vim.o.shiftwidth = 4 +vim.o.expandtab = true +vim.o.expandtab = true + +vim.g.lightspeed_no_default_keymaps = true diff --git a/nvim/.config/nvim/lua/lupan/remap.lua b/nvim/.config/nvim/lua/lupan/remap.lua index 8421c36..d1ebff9 100644 --- a/nvim/.config/nvim/lua/lupan/remap.lua +++ b/nvim/.config/nvim/lua/lupan/remap.lua @@ -54,6 +54,10 @@ key('n', 'tt', function() require('telescope-tabs').go_to_previous() end, { desc = '[T]ab [t]oggle previous' }) +for i = 1, 9, 1 do + key('n', 't' .. i, '' .. i .. 'tabnext', { desc = '[T]ab nr [' .. i .. ']' }) +end + -- Diagnostic keymaps key('n', '[d', vim.diagnostic.goto_prev, { desc = 'Go to previous diagnostic message' }) key('n', ']d', vim.diagnostic.goto_next, { desc = 'Go to next diagnostic message' }) @@ -86,6 +90,15 @@ key('v', '>', '>gv', opts) -- Keep old value of register key('v', 'P', '"_dP', opts) +-- LightSpeed +key('n', 'g/', 'Lightspeed_s', { desc = "Lightspeed forward search" }) +key('n', 'g?', 'Lightspeed_S', { desc = "Lightspeed backward search" }) + +-- Clipboard and quickfix +key({ 'n', 'v' }, 'y', '"+y', { desc = "Yank to clipboard" }) +key('n', 'j', ':cn', { desc = "Quickfix next" }) +key('n', 'k', ':cp', { desc = "Quickfix previous" }) + -- luasnip vim.keymap.set({ 'i', 's' }, "", function() diff --git a/nvim/.config/nvim/lua/plugins/git.lua b/nvim/.config/nvim/lua/plugins/git.lua index 40f6529..62e7e3f 100644 --- a/nvim/.config/nvim/lua/plugins/git.lua +++ b/nvim/.config/nvim/lua/plugins/git.lua @@ -15,14 +15,17 @@ return { changedelete = { text = '~' }, }, on_attach = function(bufnr) - vim.keymap.set('n', 'gp', require('gitsigns').prev_hunk, + local gs = require('gitsigns') + vim.keymap.set('n', 'gp', gs.prev_hunk, { buffer = bufnr, desc = '[G]o to [P]revious Hunk' }) - vim.keymap.set('n', 'gn', require('gitsigns').next_hunk, + vim.keymap.set('n', 'gn', gs.next_hunk, { buffer = bufnr, desc = '[G]o to [N]ext Hunk' }) - vim.keymap.set('n', 'ph', require('gitsigns').preview_hunk, + vim.keymap.set('n', 'ph', gs.preview_hunk, { buffer = bufnr, desc = '[P]review [H]unk' }) - vim.keymap.set('n', 'sh', require('gitsigns').stage_hunk, + vim.keymap.set('n', 'sh', gs.stage_hunk, { buffer = bufnr, desc = '[S]tage [H]unk' }) + vim.keymap.set('n', 'HD', function() gs.diffthis('~') end, + { buffer = bufnr, desc = '[H]unk [D]iff' }) end, }, }, diff --git a/nvim/.config/nvim/lua/plugins/telescope-tabs.lua b/nvim/.config/nvim/lua/plugins/telescope-tabs.lua index 1ea131b..333b57f 100644 --- a/nvim/.config/nvim/lua/plugins/telescope-tabs.lua +++ b/nvim/.config/nvim/lua/plugins/telescope-tabs.lua @@ -1,3 +1,12 @@ +local function get_tab_idx(tab_id) + for i, tabnr in ipairs(vim.api.nvim_list_tabpages()) do + if tabnr == tab_id then + return i + end + end + return -1 +end + return { 'LukasPietzschmann/telescope-tabs', dependencies = { 'nvim-telescope/telescope.nvim' }, @@ -5,12 +14,12 @@ return { config = function() require 'telescope-tabs'.setup { entry_formatter = function(tab_id, buffer_ids, file_names, file_paths, is_current) - local cwd = vim.fn.getcwd(-1, tab_id) + local cwd = vim.fn.getcwd(-1, get_tab_idx(tab_id)) local entry_string = table.concat(file_names, ', ') return string.format('%d: %s %s%s', tab_id, cwd, entry_string, is_current and ' <' or '') end, entry_ordinal = function(tab_id, buffer_ids, file_names, file_paths, is_current) - local cwd = vim.fn.getcwd(-1, tab_id) + local cwd = vim.fn.getcwd(-1, get_tab_idx(tab_id)) local entry_string = table.concat(file_names, ', ') return string.format('%s %s', cwd, entry_string) end,