136 lines
2.9 KiB
Lua
136 lines
2.9 KiB
Lua
local status_ok, spectre = pcall(require, "spectre")
|
|
if not status_ok then
|
|
return
|
|
end
|
|
spectre.setup({
|
|
|
|
color_devicons = true,
|
|
highlight = {
|
|
ui = "String",
|
|
search = "DiffChange",
|
|
replace = "DiffDelete",
|
|
},
|
|
mapping = {
|
|
["toggle_line"] = {
|
|
map = "t",
|
|
cmd = "<cmd>lua require('spectre').toggle_line()<CR>",
|
|
desc = "toggle current item",
|
|
},
|
|
["enter_file"] = {
|
|
map = "<cr>",
|
|
cmd = "<cmd>lua require('spectre.actions').select_entry()<CR>",
|
|
desc = "goto current file",
|
|
},
|
|
["send_to_qf"] = {
|
|
map = "Q",
|
|
cmd = "<cmd>lua require('spectre.actions').send_to_qf()<CR>",
|
|
desc = "send all item to quickfix",
|
|
},
|
|
["replace_cmd"] = {
|
|
map = "c",
|
|
cmd = "<cmd>lua require('spectre.actions').replace_cmd()<CR>",
|
|
desc = "input replace vim command",
|
|
},
|
|
["show_option_menu"] = {
|
|
map = "o",
|
|
cmd = "<cmd>lua require('spectre').show_options()<CR>",
|
|
desc = "show option",
|
|
},
|
|
["run_replace"] = {
|
|
map = "R",
|
|
cmd = "<cmd>lua require('spectre.actions').run_replace()<CR>",
|
|
desc = "replace all",
|
|
},
|
|
["change_view_mode"] = {
|
|
map = "m",
|
|
cmd = "<cmd>lua require('spectre').change_view()<CR>",
|
|
desc = "change result view mode",
|
|
},
|
|
["toggle_ignore_case"] = {
|
|
map = "I",
|
|
cmd = "<cmd>lua require('spectre').change_options('ignore-case')<CR>",
|
|
desc = "toggle ignore case",
|
|
},
|
|
["toggle_ignore_hidden"] = {
|
|
map = "H",
|
|
cmd = "<cmd>lua require('spectre').change_options('hidden')<CR>",
|
|
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 = false, -- start open panel on is_insert_mode
|
|
})
|