diff --git a/after/plugin/telescope.lua b/after/plugin/telescope.lua index 4bbc633c..ee16cf25 100644 --- a/after/plugin/telescope.lua +++ b/after/plugin/telescope.lua @@ -28,7 +28,7 @@ vim.keymap.set('n', 'ff', require('telescope.builtin').find_files, { des vim.keymap.set('n', 'fh', require('telescope.builtin').help_tags, { desc = 'Find [H]elp' }) vim.keymap.set('n', 'fw', require('telescope.builtin').grep_string, { desc = 'Find current [W]ord' }) vim.keymap.set('n', 'fd', require('telescope.builtin').diagnostics, { desc = 'Find [D]iagnostics' }) -vim.keymap.set('n', 'fr', require('telescope.builtin').registers, { desc = 'Find [R]egister' }) +-- vim.keymap.set('n', 'fr', require('telescope.builtin').registers, { desc = 'Find [R]egister' }) vim.keymap.set('n', 'fF', function() require('telescope.builtin').find_files { hidden = true, no_ignore = true } end, { desc = '[S]earch [R]esume' }) @@ -41,3 +41,19 @@ vim.keymap.set('n', 'fG', function() end, } end, { desc = 'Find by [G]rep In all Files' }) + +-- Replace in the Quickfix list +function QuickfixReplace(search, replace) + vim.fn.setqflist {} + local bufnr = vim.fn.bufnr '%' + local lines = vim.api.nvim_buf_get_lines(bufnr, 0, -1, false) + for lnum, line in ipairs(lines) do + if string.match(line, search) then + local replaced_line = string.gsub(line, search, replace) + vim.fn.setqflist { { bufnr = bufnr, lnum = lnum, text = replaced_line } } + end + end + vim.cmd 'cwindow' +end + +vim.api.nvim_set_keymap('n', 'fr', ':lua QuickfixReplace(vim.fn.input("Search: "), vim.fn.input("Replace: "))', { noremap = true })