mirror of
https://github.com/junegunn/fzf.vim.git
synced 2025-12-07 21:24:40 +08:00
Use -- before the search pattern for Ag, Rg, etc. (#1012)
Before this patch, a search pattern starting with a dash like `:Rg -bang` would fail (or exhibit the wrong behaviour) because it would be treated as a option. However, this case is very common when searching for ->member in a project in C, C++, PHP, etc. Co-authored-by: Alexandre Perrin <alex@atipik.ch>
This commit is contained in:
@@ -228,7 +228,7 @@ predefined `Ag` or `Rg` using `fzf#vim#grep`.
|
|||||||
```vim
|
```vim
|
||||||
command! -bang -nargs=* GGrep
|
command! -bang -nargs=* GGrep
|
||||||
\ call fzf#vim#grep(
|
\ call fzf#vim#grep(
|
||||||
\ 'git grep --line-number '.shellescape(<q-args>), 0,
|
\ 'git grep --line-number -- '.shellescape(<q-args>), 0,
|
||||||
\ fzf#vim#with_preview({'dir': systemlist('git rev-parse --show-toplevel')[0]}), <bang>0)
|
\ fzf#vim#with_preview({'dir': systemlist('git rev-parse --show-toplevel')[0]}), <bang>0)
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -242,7 +242,7 @@ the spec argument to `fzf#vim#preview`.
|
|||||||
```vim
|
```vim
|
||||||
command! -bang -nargs=* Rg
|
command! -bang -nargs=* Rg
|
||||||
\ call fzf#vim#grep(
|
\ call fzf#vim#grep(
|
||||||
\ 'rg --column --line-number --no-heading --color=always --smart-case '.shellescape(<q-args>), 1,
|
\ 'rg --column --line-number --no-heading --color=always --smart-case -- '.shellescape(<q-args>), 1,
|
||||||
\ fzf#vim#with_preview(), <bang>0)
|
\ fzf#vim#with_preview(), <bang>0)
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -267,7 +267,7 @@ a "fuzzy finder".
|
|||||||
|
|
||||||
```vim
|
```vim
|
||||||
function! RipgrepFzf(query, fullscreen)
|
function! RipgrepFzf(query, fullscreen)
|
||||||
let command_fmt = 'rg --column --line-number --no-heading --color=always --smart-case %s || true'
|
let command_fmt = 'rg --column --line-number --no-heading --color=always --smart-case -- %s || true'
|
||||||
let initial_command = printf(command_fmt, shellescape(a:query))
|
let initial_command = printf(command_fmt, shellescape(a:query))
|
||||||
let reload_command = printf(command_fmt, '{q}')
|
let reload_command = printf(command_fmt, '{q}')
|
||||||
let spec = {'options': ['--phony', '--query', a:query, '--bind', 'change:reload:'.reload_command]}
|
let spec = {'options': ['--phony', '--query', a:query, '--bind', 'change:reload:'.reload_command]}
|
||||||
|
|||||||
@@ -700,7 +700,7 @@ function! fzf#vim#ag(query, ...)
|
|||||||
let query = empty(a:query) ? '^(?=.)' : a:query
|
let query = empty(a:query) ? '^(?=.)' : a:query
|
||||||
let args = copy(a:000)
|
let args = copy(a:000)
|
||||||
let ag_opts = len(args) > 1 && type(args[0]) == s:TYPE.string ? remove(args, 0) : ''
|
let ag_opts = len(args) > 1 && type(args[0]) == s:TYPE.string ? remove(args, 0) : ''
|
||||||
let command = ag_opts . ' ' . fzf#shellescape(query)
|
let command = ag_opts . ' -- ' . fzf#shellescape(query)
|
||||||
return call('fzf#vim#ag_raw', insert(args, command, 0))
|
return call('fzf#vim#ag_raw', insert(args, command, 0))
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|||||||
@@ -286,7 +286,7 @@ predefined `Ag` or `Rg` using `fzf#vim#grep`.
|
|||||||
>
|
>
|
||||||
command! -bang -nargs=* GGrep
|
command! -bang -nargs=* GGrep
|
||||||
\ call fzf#vim#grep(
|
\ call fzf#vim#grep(
|
||||||
\ 'git grep --line-number '.shellescape(<q-args>), 0,
|
\ 'git grep --line-number -- '.shellescape(<q-args>), 0,
|
||||||
\ fzf#vim#with_preview({'dir': systemlist('git rev-parse --show-toplevel')[0]}), <bang>0)
|
\ fzf#vim#with_preview({'dir': systemlist('git rev-parse --show-toplevel')[0]}), <bang>0)
|
||||||
<
|
<
|
||||||
{10} bin/preview.sh
|
{10} bin/preview.sh
|
||||||
@@ -302,7 +302,7 @@ the spec argument to `fzf#vim#preview`.
|
|||||||
>
|
>
|
||||||
command! -bang -nargs=* Rg
|
command! -bang -nargs=* Rg
|
||||||
\ call fzf#vim#grep(
|
\ call fzf#vim#grep(
|
||||||
\ 'rg --column --line-number --no-heading --color=always --smart-case '.shellescape(<q-args>), 1,
|
\ 'rg --column --line-number --no-heading --color=always --smart-case -- '.shellescape(<q-args>), 1,
|
||||||
\ fzf#vim#with_preview(), <bang>0)
|
\ fzf#vim#with_preview(), <bang>0)
|
||||||
<
|
<
|
||||||
|
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ call s:defs([
|
|||||||
\'command! -bar -bang Colors call fzf#vim#colors(<bang>0)',
|
\'command! -bar -bang Colors call fzf#vim#colors(<bang>0)',
|
||||||
\'command! -bang -nargs=+ -complete=dir Locate call fzf#vim#locate(<q-args>, s:p(<bang>0), <bang>0)',
|
\'command! -bang -nargs=+ -complete=dir Locate call fzf#vim#locate(<q-args>, s:p(<bang>0), <bang>0)',
|
||||||
\'command! -bang -nargs=* Ag call fzf#vim#ag(<q-args>, s:p(<bang>0), <bang>0)',
|
\'command! -bang -nargs=* Ag call fzf#vim#ag(<q-args>, s:p(<bang>0), <bang>0)',
|
||||||
\'command! -bang -nargs=* Rg call fzf#vim#grep("rg --column --line-number --no-heading --color=always --smart-case ".shellescape(<q-args>), 1, s:p(<bang>0), <bang>0)',
|
\'command! -bang -nargs=* Rg call fzf#vim#grep("rg --column --line-number --no-heading --color=always --smart-case -- ".shellescape(<q-args>), 1, s:p(<bang>0), <bang>0)',
|
||||||
\'command! -bang -nargs=* Tags call fzf#vim#tags(<q-args>, <bang>0)',
|
\'command! -bang -nargs=* Tags call fzf#vim#tags(<q-args>, <bang>0)',
|
||||||
\'command! -bang -nargs=* BTags call fzf#vim#buffer_tags(<q-args>, s:p(<bang>0, { "placeholder": "{2}:{3}", "options": ["-d", "\t"] }), <bang>0)',
|
\'command! -bang -nargs=* BTags call fzf#vim#buffer_tags(<q-args>, s:p(<bang>0, { "placeholder": "{2}:{3}", "options": ["-d", "\t"] }), <bang>0)',
|
||||||
\'command! -bar -bang Snippets call fzf#vim#snippets(<bang>0)',
|
\'command! -bar -bang Snippets call fzf#vim#snippets(<bang>0)',
|
||||||
|
|||||||
Reference in New Issue
Block a user