要仅按扩展名/文件类型搜索文件,请在命令行中尝试:
rg . --files -g "*.{py}"
有了这个我只搜索python文件
我的输出:
> rg . --files -g "*.{py}"
./another.py
./colors_do_not_apply.py
从 ripgrep 中排除目录
如果要all content from files
在当前目录中搜索:
> rg --column --line-number --no-heading --color=always --smart-case --hidden -g "\!.git" .
请注意:
--hidden
用于隐藏文件
-g "\!.git"
用于ignoring
git 文件夹(你可以对其他人做同样的事情)
注意:
我用过"\!.git"
,仅在终端中使用(我的 zsh 在没有!转义的情况下爆炸),在 vim 中你可以将其用作"!.git"
如果您只想搜索文件并排除当前目录中的 git 文件夹:
> rg --hidden -g "\!.git" --files .
在子目录中搜索是自动进行的,所以你不必担心
最后
我看到你从 github 上的 fzf.vim 复制粘贴了一个花哨的函数,我也使用它 :)
这是我的功能:
" search for content in files in current project, including hidden ones and ignoring git
function! SearchContentInFiles(query, fullscreen)
let command_fmt = 'rg --column --line-number --no-heading --color=always --smart-case --hidden -g "!.git" -- %s || true'
let initial_command = printf(command_fmt, shellescape(a:query))
let reload_command = printf(command_fmt, '{q}')
let spec = {'options': ['--phony', '--query', a:query, '--bind', 'change:reload:'.reload_command, '--exact', '--pointer=@', '-i', '-m', '--cycle', '--border=none', '--marker=*', '--ansi', '--preview-window=left,50%', '--bind=alt-bspace:backward-kill-word,ctrl-x:beginning-of-line+kill-line,ctrl-a:select-all', '--color=16,fg+:bright-red,hl:bright-blue,hl+:green,query:blue,prompt:yellow,info:magenta,pointer:bright-yellow,marker:bright-blue,spinner:bright-blue,header:blue', '--prompt=content from files(+hidden) (git ignored) at . > ']}
call fzf#vim#grep(initial_command, 1, fzf#vim#with_preview(spec), a:fullscreen)
endfunction
command! -nargs=* -bang SCIF call SearchContentInFiles(<q-args>, <bang>0)
nnoremap <silent> <S-F> :SCIF!<CR>
嗯,它很大,我知道。这是我所拥有的最好的。
唯一的区别是:
- 在
command_fmt
我为隐藏文件和排除 git 文件夹添加了额外的参数
- 函数名
- fzf 选项(有很多选项),更确切地说是这些选项:
'--exact' - exact match
'--pointer=@',
'-i',
'-m',
'--cycle', (repeat after end)
'--border=none',
'--marker=*',
'--ansi', (enable colors)
'--preview-window=left,50%',
'--bind=alt-bspace:backward-kill-word,ctrl-x:beginning-of-line+kill-line,ctrl-a:select-all', (some keybindings)
'--color=16,fg+:bright-red,hl:bright-blue,hl+:green,query:blue,prompt:yellow,info:magenta,pointer:bright-yellow,marker:bright-blue,spinner:bright-blue,header:blue', (color scheme)
'--prompt=content from files(+hidden) (git ignored) at . > ' (prompt text)
ofc,您可以在 vim 中集成上述所有命令。
希望这些帮助。