默认安装的fzf在home目录运行时无法找到GitHub目录是什么原因?
故障原因说明
- 默认fzf仅搜索文件,不包含目录
默认配置下fzf调用find执行的是find . -type f,只会返回普通文件结果,目录本身不会被纳入搜索池。你执行find GitHub | fzf时,无参数的find会同时返回匹配的目录、子目录、子文件,所以GitHub目录会出现在结果中。
如果需要让fzf默认也搜目录,可以手动修改环境变量:export FZF_DEFAULT_COMMAND='find .'
或者临时指定搜索类型:fzf --walker=dir,file - 忽略规则屏蔽了目标目录
fzf默认会遵循当前目录.gitignore、全局git忽略配置~/.gitignore_global、~/.fzfignore里的过滤规则,如果你在上述任意文件中配置了GitHub/的忽略规则,直接在home目录运行fzf时就会过滤掉该目录的所有内容。
而管道输入的内容会跳过fzf自身的忽略规则校验,直接把find的输出作为搜索源,所以不会被过滤。 - 存在默认搜索深度限制
部分预装的fzf配置会设置递归搜索深度上限(比如最多递归3层目录),如果你的GitHub目录存放在更深的层级,直接运行fzf时就无法扫描到,而find GitHub是定向搜索该路径,不受全局深度限制。
内容的提问来源于stack exchange,提问作者user3156459
相关产品推荐
相关产品推荐

