;; Find and replace. (local user-cmds [[:Replace (lambda [] (let [spectre (require :spectre)] (spectre.open))) {:nargs 0}] [:ReplaceWord (lambda [] (let [spectre (require :spectre)] (spectre.open_visual {:select_word true}))) {:nargs 0}] [:ReplaceInBuf (lambda [] (let [spectre (require :spectre)] (spectre.open_file_search))) {:nargs 0}]]) (local auto-cmds [[:FileType {:pattern [:spectre_panel] :command "nnoremap q :close"}] [:FileType {:pattern [:spectre_panel] :command "setlocal spell!"}]]) (fn init [] (let [cmds (require :util.cmds)] (cmds.create-user-cmds user-cmds) (cmds.create-auto-cmds auto-cmds))) (local opts {:color_devicons true :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"}} :find_engine {:rg {:cmd :rg :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]"}}}} :replace_engine {:sed {:cmd :sed :args nil} :options {:ignore-case {:value :--ignore-case :icon "[I]" :desc "ignore case"}}} :default {:find {:cmd :rg :options [:ignore-case]} :replace {:cmd :sed}} :replace_vim_cmd :cdo :is_open_target_win true :is_insert_mode false}) {1 :windwp/nvim-spectre :event :BufReadPost : init :keys [{1 :rn 2 :ReplaceInBuf :desc "Replace in Buffer"} {1 :re 2 :Replace :desc :Replace} {1 :ri 2 :ReplaceWord :desc "Replace Word"}] : opts}