You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PowerShell中配置fzf模糊查找器使用ripgrep加速?

让fzf在PowerShell中用ripgrep提速的配置方案

要让PowerShell里按Ctrl+T调用的fzf用上ripgrep提升搜索速度,需要调整PSFzf的专属配置,只设置FZF_DEFAULT_COMMAND无法生效,具体操作如下:

修改PowerShell配置文件

更新你的PowerShell_profile.ps1,替换原有PSfzf相关配置为以下内容:

# PSReadLine
Set-PSReadLineOption -PredictionSource History
Set-PSReadLineOption -PredictionViewStyle ListView
Set-PSReadLineOption -EditMode Windows
Set-PSReadLineKeyHandler -Key Tab -Function Complete

# PSfzf
Import-Module PSFzf
# 定义ripgrep作为fzf的默认文件搜索命令,忽略指定目录
$env:FZF_DEFAULT_COMMAND = 'rg --files --hidden --follow --glob "!.git/*" --glob "!.vscode/*"'
# 强制PSFzf的Ctrl+T调用使用ripgrep命令
Set-PsFzfOption -PSReadlineChordProvider 'Ctrl+t' `
                -PSReadlineChordReverseHistory 'Ctrl+r' `
                -ProviderCommand $env:FZF_DEFAULT_COMMAND
# 覆盖默认tab补全
Set-PSReadLineKeyHandler -Key Tab -ScriptBlock { Invoke-FzfTabCompletion }

关键说明

  • PSFzf默认不会自动读取FZF_DEFAULT_COMMAND环境变量作为文件搜索的执行命令,必须通过-ProviderCommand参数把ripgrep命令明确指定给PSFzf的文件搜索Provider。
  • 可以通过添加更多--glob "!xxx/*"规则来忽略不需要扫描的目录(如node_modules、dist等),进一步减少扫描时间。
  • 如果想避免重复扫描提升速度,可以添加缓存机制(注意缓存需要定期更新,否则会找不到新文件):
    # 可选:添加文件缓存,仅首次扫描生成缓存
    $cachePath = "$env:TEMP\fzf_file_cache.txt"
    $env:FZF_DEFAULT_COMMAND = @"
    if (Test-Path $cachePath) {
      Get-Content $cachePath
    } else {
      rg --files --hidden --follow --glob "!.git/*" | Tee-Object -FilePath $cachePath
    }
    "@
    

验证效果

保存配置文件后重启Windows Terminal,按下Ctrl+T,此时fzf会调用ripgrep执行文件搜索,速度会明显优于默认的文件扫描方式。

内容的提问来源于stack exchange,提问作者Lernkurve

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 03:33:23