-- ╭──────────────────────────────────────────────────────────────────────╮ -- │ │ -- │ PLUGINS: Spectre │ -- │ │ -- │ https://github.com/nvim-pack/nvim-spectre │ -- │ │ -- ╰──────────────────────────────────────────────────────────────────────╯ return { "nvim-pack/nvim-spectre", lazy = true, keys = { { "gs", function() require("spectre").open() end, desc = "Replace in files (Spectre)", }, }, opts = { color_devicons = true, open_cmd = "leftabove vnew", live_update = false, -- auto excute search again when you write any file in vim line_sep_start = "┌─────────────────────────────────────────────", result_padding = "│ ", line_sep = "└─────────────────────────────────────────────", highlight = { ui = "String", search = "DiffChange", replace = "DiffDelete", }, mapping = { ["toggle_line"] = { map = "t", cmd = "lua require('spectre').toggle_line()", desc = "toggle current item", }, ["enter_file"] = { map = "", cmd = "lua require('spectre.actions').select_entry()", desc = "goto current file", }, ["send_to_qf"] = { map = "Q", cmd = "lua require('spectre.actions').send_to_qf()", desc = "send all item to quickfix", }, ["replace_cmd"] = { map = "c", cmd = "lua require('spectre.actions').replace_cmd()", desc = "input replace vim command", }, ["show_option_menu"] = { map = "o", cmd = "lua require('spectre').show_options()", desc = "show option", }, ["run_replace"] = { map = "R", cmd = "lua require('spectre.actions').run_replace()", desc = "replace all", }, ["change_view_mode"] = { map = "m", cmd = "lua require('spectre').change_view()", desc = "change result view mode", }, ["toggle_ignore_case"] = { map = "I", cmd = "lua require('spectre').change_options('ignore-case')", desc = "toggle ignore case", }, ["toggle_ignore_hidden"] = { map = "H", cmd = "lua require('spectre').change_options('hidden')", desc = "toggle search hidden", }, -- you can put your mapping here it only use normal mode }, find_engine = { -- rg is map with finder_cmd ["rg"] = { cmd = "rg", -- default args args = { "--color=never", "--no-heading", "--with-filename", "--line-number", "--column", }, options = { ["ignore-case"] = { value = "--ignore-case", icon = "[I]", desc = "ignore case", }, ["hidden"] = { value = "--hidden", desc = "hidden file", icon = "[H]", }, -- you can put any option you want here it can toggle with -- show_option function }, }, ["ag"] = { cmd = "ag", args = { "--vimgrep", "-s", }, options = { ["ignore-case"] = { value = "-i", icon = "[I]", desc = "ignore case", }, ["hidden"] = { value = "--hidden", desc = "hidden file", icon = "[H]", }, }, }, }, replace_engine = { ["sed"] = { cmd = "sed", args = nil, }, options = { ["ignore-case"] = { value = "--ignore-case", icon = "[I]", desc = "ignore case", }, }, }, default = { find = { --pick one of item in find_engine cmd = "rg", options = { "ignore-case" }, }, replace = { --pick one of item in replace_engine cmd = "sed", }, }, replace_vim_cmd = "cdo", is_open_target_win = true, --open file on opener window is_insert_mode = true, -- start open panel on is_insert_mode }, }