diff --git a/nvim/lua/keymappings.lua b/nvim/lua/keymappings.lua index 5cf6d52..7fbe5be 100644 --- a/nvim/lua/keymappings.lua +++ b/nvim/lua/keymappings.lua @@ -34,7 +34,7 @@ vim.keymap.set('n', 'J', 'mzJ`z') -- Switch or close buffers in the window vim.keymap.set('n', 'n', ':bn', options) vim.keymap.set('n', 'p', ':bp', options) -vim.keymap.set('n', 'd', ':bp|bd #', options) +vim.keymap.set('n', 'x', ':bp|bd #', options) -- Toggle spellcheck vim.keymap.set('n', 's', ':set spell!', options) @@ -56,6 +56,6 @@ vim.keymap.set('n', 'em', function() cf.execute('benchmark') end) vim.keymap.set('n', 'eo', ':Lexplore', options) -vim.keymap.set('n', 'rn', ':%s///g', options) +-- vim.keymap.set('n', 'rn', ':%s///g', options) vim.keymap.set('n', 'l', ':Lazy', options) diff --git a/nvim/lua/plugins/telescope.lua b/nvim/lua/plugins/telescope.lua index 65899e3..a600f8e 100644 --- a/nvim/lua/plugins/telescope.lua +++ b/nvim/lua/plugins/telescope.lua @@ -3,8 +3,31 @@ return { config = function(_, opts) local telescope = require('telescope') local actions = require('telescope.actions') + local action_state = require('telescope.actions.state') local fb_actions = telescope.extensions.file_browser.actions + local custom_actions = {} + + function custom_actions.grep_multi_select(prompt_bufnr) + local function get_table_size(t) + local count = 0 + for _ in pairs(t) do + count = count + 1 + end + return count + end + + local picker = action_state.get_current_picker(prompt_bufnr) + local num_selections = get_table_size(picker:get_multi_selection()) + + if num_selections > 1 then + actions.send_selected_to_qflist(prompt_bufnr) + actions.open_qflist() + else + actions.file_edit(prompt_bufnr) + end + end + opts.defaults = { file_ignore_patterns = { '.png$', @@ -19,8 +42,12 @@ return { layout_config = { prompt_position = 'top' }, layout_strategy = 'horizontal', mappings = { + n = { + [''] = custom_actions.grep_multi_select, + }, i = { - [''] = actions.close + [''] = actions.close, + [''] = custom_actions.grep_multi_select, }, }, prompt_prefix = '  ', @@ -38,6 +65,9 @@ return { preview_cutoff = 9999, }, }, + grep_string = { + initial_mode = 'normal', + }, } opts.extensions = { @@ -59,6 +89,7 @@ return { dependencies = { 'nvim-lua/plenary.nvim', 'nvim-telescope/telescope-file-browser.nvim', + 'kevinhwang91/nvim-bqf', }, keys = { { @@ -122,6 +153,16 @@ return { require('telescope.builtin').lsp_dynamic_workspace_symbols() end }, + { + ';g', + function() + require('telescope.builtin').grep_string({ search = vim.fn.input('Grep For > ')}) + end + }, + { + 'rn', + -- custom_actions.grep_multi_select + }, { 'sf', function()