【问题标题】:How can I specify that fzf --preview should only find files within the current directory?如何指定 fzf --preview 应该只在当前目录中查找文件?
【发布时间】:2021-08-14 08:12:39
【问题描述】:

fzf --preview 'cat {}' 给我一个两窗格的终端窗口,(左)fzf fuzzy search 用于文件和(右)所述文件的预览。

当被调用时,它开始显示/Users/tomnorway/Downloads,不管我当前的目录是什么。我想编写一个仅在当前目录中查找文件/文件夹的命令(递归)。尽我所能阅读man fzf 后,我找不到具体说明的方法。有人有什么建议吗?

【问题讨论】:

  • 这很奇怪 - 我相信 fzf 的默认行为确实是搜索当前目录......如果你这样做 echo $FZF_DEFAULT_OPTSecho $FZF_DEFAULT_COMMAND 会得到什么?
  • 有趣!好吧,第一个我没有得到任何回报,第二个是fd . /Users/tomnorway。有什么想法吗?默认情况下,我肯定会获取当前目录之外的目录列表(在调用 fzf --preview 'cat {}' 之前,我导航了几个步骤进入 git 存储库)。然后我可以输入 git repo 名称,它确实找到了。
  • 实际上我认为这是预期的默认值:export FZF_DEFAULT_COMMAND='fd --type f' 请参阅 github.com/junegunn/fzf(请参阅“环境变量”标题下)

标签: fzf


【解决方案1】:

鉴于echo $FZF_DEFAULT_COMMAND 的输出为:

fd . /Users/tomnorway

您应该进入 ~/.bashrc 并替换该行:

export FZF_DEFAULT_COMMAND='fd . /Users/tomnorway'

与:

export FZF_DEFAULT_COMMAND='fd --type f'

奖金

如果你想让 fzf 搜索一个专门的候选名单,我也有一个答案 目录(例如 Docs、Downloads、Pics、Vids、Admin、MyDir...等) 你在文件系统中的位置 (https://stackoverflow.com/a/67019648/14467607)。我喜欢这个,因为它 有效地意味着我可以随时找到任何文件(但不会弄乱 fzf 列表,其中包含来自我家中各种安装的数千个随机文件 目录)。

【讨论】:

  • 太棒了!谢谢! :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-29
  • 1970-01-01
  • 1970-01-01
  • 2021-05-28
  • 2011-07-05
相关资源
最近更新 更多