mirror of
https://github.com/neovim/neovim.git
synced 2026-04-28 02:04:10 +00:00
feat(defaults): improve :grep defaults #28545
Based on feedback from #28324, pass -H and -I to regular grep (available on all platforms officially supported by Neovim), and only pass -uu to ripgrep. This makes :grep ignore binary files by default in both cases.
This commit is contained in:
committed by
GitHub
parent
83635e4e3d
commit
513fc46195
@@ -560,9 +560,8 @@ end
|
||||
do
|
||||
--- Default 'grepprg' to ripgrep if available.
|
||||
if vim.fn.executable('rg') == 1 then
|
||||
-- Match :grep default, otherwise rg searches cwd by default
|
||||
-- Use -uuu to make ripgrep not do its default filtering
|
||||
vim.o.grepprg = 'rg --vimgrep -uuu $* ' .. (vim.fn.has('unix') == 1 and '/dev/null' or 'nul')
|
||||
-- Use -uu to make ripgrep not check ignore files/skip dot-files
|
||||
vim.o.grepprg = 'rg --vimgrep -uu '
|
||||
vim.o.grepformat = '%f:%l:%c:%m'
|
||||
end
|
||||
end
|
||||
|
||||
14
runtime/lua/vim/_meta/options.lua
generated
14
runtime/lua/vim/_meta/options.lua
generated
@@ -2638,12 +2638,6 @@ vim.go.gfm = vim.go.grepformat
|
||||
--- line. The placeholder "$*" is allowed to specify where the arguments
|
||||
--- will be included. Environment variables are expanded `:set_env`. See
|
||||
--- `option-backslash` about including spaces and backslashes.
|
||||
--- When your "grep" accepts the "-H" argument, use this to make ":grep"
|
||||
--- also work well with a single file:
|
||||
---
|
||||
--- ```vim
|
||||
--- set grepprg=grep\ -nH
|
||||
--- ```
|
||||
--- Special value: When 'grepprg' is set to "internal" the `:grep` command
|
||||
--- works like `:vimgrep`, `:lgrep` like `:lvimgrep`, `:grepadd` like
|
||||
--- `:vimgrepadd` and `:lgrepadd` like `:lvimgrepadd`.
|
||||
@@ -2652,18 +2646,18 @@ vim.go.gfm = vim.go.grepformat
|
||||
--- This option cannot be set from a `modeline` or in the `sandbox`, for
|
||||
--- security reasons.
|
||||
--- This option defaults to:
|
||||
--- - `rg --vimgrep -uuu $* ...` if ripgrep is available (`:checkhealth`),
|
||||
--- - `grep -n $* /dev/null` on Unix,
|
||||
--- - `rg --vimgrep -uu ` if ripgrep is available (`:checkhealth`),
|
||||
--- - `grep -HIn $* /dev/null` on Unix,
|
||||
--- - `findstr /n $* nul` on Windows.
|
||||
--- Ripgrep can perform additional filtering such as using .gitignore rules
|
||||
--- and skipping hidden or binary files. This is disabled by default (see the -u option)
|
||||
--- and skipping hidden files. This is disabled by default (see the -u option)
|
||||
--- to more closely match the behaviour of standard grep.
|
||||
--- You can make ripgrep match Vim's case handling using the
|
||||
--- -i/--ignore-case and -S/--smart-case options.
|
||||
--- An `OptionSet` autocmd can be used to set it up to match automatically.
|
||||
---
|
||||
--- @type string
|
||||
vim.o.grepprg = "grep -n $* /dev/null"
|
||||
vim.o.grepprg = "grep -HIn $* /dev/null"
|
||||
vim.o.gp = vim.o.grepprg
|
||||
vim.bo.grepprg = vim.o.grepprg
|
||||
vim.bo.gp = vim.bo.grepprg
|
||||
|
||||
Reference in New Issue
Block a user