mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06: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:
parent
83635e4e3d
commit
513fc46195
@ -407,7 +407,8 @@ The following changes to existing APIs or features add new behavior.
|
|||||||
correctly without it. (Use |gF| for filepaths suffixed with ":line:col").
|
correctly without it. (Use |gF| for filepaths suffixed with ":line:col").
|
||||||
• 'comments' includes "fb:•".
|
• 'comments' includes "fb:•".
|
||||||
• 'shortmess' includes the "C" flag.
|
• 'shortmess' includes the "C" flag.
|
||||||
• 'grepprg' defaults to using ripgrep if available.
|
• 'grepprg' uses the -H and -I flags for grep by default,
|
||||||
|
and defaults to using ripgrep if available.
|
||||||
• |crn| in Normal mode maps to |vim.lsp.buf.rename()|.
|
• |crn| in Normal mode maps to |vim.lsp.buf.rename()|.
|
||||||
• |crr| in Normal and Visual mode maps to |vim.lsp.buf.code_action()|.
|
• |crr| in Normal and Visual mode maps to |vim.lsp.buf.code_action()|.
|
||||||
• "gr" in Normal mode maps to |vim.lsp.buf.references()| |gr-default|
|
• "gr" in Normal mode maps to |vim.lsp.buf.references()| |gr-default|
|
||||||
|
@ -2861,10 +2861,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
line. The placeholder "$*" is allowed to specify where the arguments
|
line. The placeholder "$*" is allowed to specify where the arguments
|
||||||
will be included. Environment variables are expanded |:set_env|. See
|
will be included. Environment variables are expanded |:set_env|. See
|
||||||
|option-backslash| about including spaces and backslashes.
|
|option-backslash| about including spaces and backslashes.
|
||||||
When your "grep" accepts the "-H" argument, use this to make ":grep"
|
Special value: When 'grepprg' is set to "internal" the |:grep| command
|
||||||
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
|
works like |:vimgrep|, |:lgrep| like |:lvimgrep|, |:grepadd| like
|
||||||
|:vimgrepadd| and |:lgrepadd| like |:lvimgrepadd|.
|
|:vimgrepadd| and |:lgrepadd| like |:lvimgrepadd|.
|
||||||
See also the section |:make_makeprg|, since most of the comments there
|
See also the section |:make_makeprg|, since most of the comments there
|
||||||
@ -2872,11 +2869,11 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||||
security reasons.
|
security reasons.
|
||||||
This option defaults to:
|
This option defaults to:
|
||||||
- `rg --vimgrep -uuu $* ...` if ripgrep is available (|:checkhealth|),
|
- `rg --vimgrep -uu ` if ripgrep is available (|:checkhealth|),
|
||||||
- `grep -n $* /dev/null` on Unix,
|
- `grep -HIn $* /dev/null` on Unix,
|
||||||
- `findstr /n $* nul` on Windows.
|
- `findstr /n $* nul` on Windows.
|
||||||
Ripgrep can perform additional filtering such as using .gitignore rules
|
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.
|
to more closely match the behaviour of standard grep.
|
||||||
You can make ripgrep match Vim's case handling using the
|
You can make ripgrep match Vim's case handling using the
|
||||||
-i/--ignore-case and -S/--smart-case options.
|
-i/--ignore-case and -S/--smart-case options.
|
||||||
|
@ -52,7 +52,8 @@ Defaults *nvim-defaults*
|
|||||||
- 'encoding' is UTF-8 (cf. 'fileencoding' for file-content encoding)
|
- 'encoding' is UTF-8 (cf. 'fileencoding' for file-content encoding)
|
||||||
- 'fillchars' defaults (in effect) to "vert:│,fold:·,foldsep:│"
|
- 'fillchars' defaults (in effect) to "vert:│,fold:·,foldsep:│"
|
||||||
- 'formatoptions' defaults to "tcqj"
|
- 'formatoptions' defaults to "tcqj"
|
||||||
- 'grepprg' defaults to using ripgrep if available
|
- 'grepprg' uses the -H and -I flags for regular grep,
|
||||||
|
and defaults to using ripgrep if available
|
||||||
- 'hidden' is enabled
|
- 'hidden' is enabled
|
||||||
- 'history' defaults to 10000 (the maximum)
|
- 'history' defaults to 10000 (the maximum)
|
||||||
- 'hlsearch' is enabled
|
- 'hlsearch' is enabled
|
||||||
|
@ -560,9 +560,8 @@ end
|
|||||||
do
|
do
|
||||||
--- Default 'grepprg' to ripgrep if available.
|
--- Default 'grepprg' to ripgrep if available.
|
||||||
if vim.fn.executable('rg') == 1 then
|
if vim.fn.executable('rg') == 1 then
|
||||||
-- Match :grep default, otherwise rg searches cwd by default
|
-- Use -uu to make ripgrep not check ignore files/skip dot-files
|
||||||
-- Use -uuu to make ripgrep not do its default filtering
|
vim.o.grepprg = 'rg --vimgrep -uu '
|
||||||
vim.o.grepprg = 'rg --vimgrep -uuu $* ' .. (vim.fn.has('unix') == 1 and '/dev/null' or 'nul')
|
|
||||||
vim.o.grepformat = '%f:%l:%c:%m'
|
vim.o.grepformat = '%f:%l:%c:%m'
|
||||||
end
|
end
|
||||||
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
|
--- line. The placeholder "$*" is allowed to specify where the arguments
|
||||||
--- will be included. Environment variables are expanded `:set_env`. See
|
--- will be included. Environment variables are expanded `:set_env`. See
|
||||||
--- `option-backslash` about including spaces and backslashes.
|
--- `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
|
--- Special value: When 'grepprg' is set to "internal" the `:grep` command
|
||||||
--- works like `:vimgrep`, `:lgrep` like `:lvimgrep`, `:grepadd` like
|
--- works like `:vimgrep`, `:lgrep` like `:lvimgrep`, `:grepadd` like
|
||||||
--- `:vimgrepadd` and `:lgrepadd` like `:lvimgrepadd`.
|
--- `: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
|
--- This option cannot be set from a `modeline` or in the `sandbox`, for
|
||||||
--- security reasons.
|
--- security reasons.
|
||||||
--- This option defaults to:
|
--- This option defaults to:
|
||||||
--- - `rg --vimgrep -uuu $* ...` if ripgrep is available (`:checkhealth`),
|
--- - `rg --vimgrep -uu ` if ripgrep is available (`:checkhealth`),
|
||||||
--- - `grep -n $* /dev/null` on Unix,
|
--- - `grep -HIn $* /dev/null` on Unix,
|
||||||
--- - `findstr /n $* nul` on Windows.
|
--- - `findstr /n $* nul` on Windows.
|
||||||
--- Ripgrep can perform additional filtering such as using .gitignore rules
|
--- 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.
|
--- to more closely match the behaviour of standard grep.
|
||||||
--- You can make ripgrep match Vim's case handling using the
|
--- You can make ripgrep match Vim's case handling using the
|
||||||
--- -i/--ignore-case and -S/--smart-case options.
|
--- -i/--ignore-case and -S/--smart-case options.
|
||||||
--- An `OptionSet` autocmd can be used to set it up to match automatically.
|
--- An `OptionSet` autocmd can be used to set it up to match automatically.
|
||||||
---
|
---
|
||||||
--- @type string
|
--- @type string
|
||||||
vim.o.grepprg = "grep -n $* /dev/null"
|
vim.o.grepprg = "grep -HIn $* /dev/null"
|
||||||
vim.o.gp = vim.o.grepprg
|
vim.o.gp = vim.o.grepprg
|
||||||
vim.bo.grepprg = vim.o.grepprg
|
vim.bo.grepprg = vim.o.grepprg
|
||||||
vim.bo.gp = vim.bo.grepprg
|
vim.bo.gp = vim.bo.grepprg
|
||||||
|
@ -3382,7 +3382,7 @@ return {
|
|||||||
abbreviation = 'gp',
|
abbreviation = 'gp',
|
||||||
defaults = {
|
defaults = {
|
||||||
condition = 'MSWIN',
|
condition = 'MSWIN',
|
||||||
if_false = 'grep -n $* /dev/null',
|
if_false = 'grep -HIn $* /dev/null',
|
||||||
if_true = 'findstr /n $* nul',
|
if_true = 'findstr /n $* nul',
|
||||||
doc = [[see below]],
|
doc = [[see below]],
|
||||||
},
|
},
|
||||||
@ -3392,10 +3392,7 @@ return {
|
|||||||
line. The placeholder "$*" is allowed to specify where the arguments
|
line. The placeholder "$*" is allowed to specify where the arguments
|
||||||
will be included. Environment variables are expanded |:set_env|. See
|
will be included. Environment variables are expanded |:set_env|. See
|
||||||
|option-backslash| about including spaces and backslashes.
|
|option-backslash| about including spaces and backslashes.
|
||||||
When your "grep" accepts the "-H" argument, use this to make ":grep"
|
Special value: When 'grepprg' is set to "internal" the |:grep| command
|
||||||
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
|
works like |:vimgrep|, |:lgrep| like |:lvimgrep|, |:grepadd| like
|
||||||
|:vimgrepadd| and |:lgrepadd| like |:lvimgrepadd|.
|
|:vimgrepadd| and |:lgrepadd| like |:lvimgrepadd|.
|
||||||
See also the section |:make_makeprg|, since most of the comments there
|
See also the section |:make_makeprg|, since most of the comments there
|
||||||
@ -3403,11 +3400,11 @@ return {
|
|||||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||||
security reasons.
|
security reasons.
|
||||||
This option defaults to:
|
This option defaults to:
|
||||||
- `rg --vimgrep -uuu $* ...` if ripgrep is available (|:checkhealth|),
|
- `rg --vimgrep -uu ` if ripgrep is available (|:checkhealth|),
|
||||||
- `grep -n $* /dev/null` on Unix,
|
- `grep -HIn $* /dev/null` on Unix,
|
||||||
- `findstr /n $* nul` on Windows.
|
- `findstr /n $* nul` on Windows.
|
||||||
Ripgrep can perform additional filtering such as using .gitignore rules
|
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.
|
to more closely match the behaviour of standard grep.
|
||||||
You can make ripgrep match Vim's case handling using the
|
You can make ripgrep match Vim's case handling using the
|
||||||
-i/--ignore-case and -S/--smart-case options.
|
-i/--ignore-case and -S/--smart-case options.
|
||||||
|
Loading…
Reference in New Issue
Block a user