return { { "roobert/search-replace.nvim", opts = { default_replace_single_buffer_options = "gcI", default_replace_multi_buffer_options = "egcI", }, -- stylua: ignore keys = { { "srb", "SearchReplaceSingleBufferVisualSelection", desc = "Buffer", mode = "v" }, { "srv", "SearchReplaceWithinVisualSelection", desc = "Visual Selection", mode = "v" }, { "srw", "SearchReplaceWithinVisualSelectionCWord", desc = "Word on Buffer", mode = "v" }, { "srb", "SearchReplaceSingleBufferOpen", desc = "Buffer", mode = "n" }, { "srw", "SearchReplaceSingleBufferCWord", desc = "Word on Buffer", mode = "n" }, { "srW", "SearchReplaceSingleBufferCWORD", desc = "WORD on Buffer", mode = "n" }, { "sre", "SearchReplaceSingleBufferCExpr", desc = "Expression on Buffer", mode = "n" }, -- { "n", "rbs", "SearchReplaceMultiBufferSelections", desc = "Search and Replace in Multi Buffer Selections" }, -- { "n", "rbo", "SearchReplaceMultiBufferOpen", desc = "Search and Replace in Multi Buffer, Open" }, -- { "n", "rbw", "SearchReplaceMultiBufferCWord", desc = "Search and Replace in Multi Buffer (Current Word)" }, -- { "n", "rbW", "SearchReplaceMultiBufferCWORD", desc = "Search and Replace in Multi Buffer (Current WORD)" }, -- { "n", "rbe", "SearchReplaceMultiBufferCExpr", desc = "Search and Replace in Multi Buffer (Current Expression)" }, -- { "n", "rbf", "SearchReplaceMultiBufferCFile", desc = "Search and Replace in Multi Buffer (Current File)" }, }, }, { "folke/which-key.nvim", opts = { spec = { { "sr", group = "replace", icon = " " }, }, }, }, { "MagicDuck/grug-far.nvim", keys = { { "srp", function() local grug = require("grug-far") local ext = vim.bo.buftype == "" and vim.fn.expand("%:e") grug.grug_far({ transient = true, prefills = { filesFilter = ext and ext ~= "" and "*." .. ext or nil, }, }) end, mode = { "n", "v" }, desc = "Project", }, }, }, }