我如何告诉 VIFM 过滤二进制文件、“.hi”文件和“.o”文件?

我如何告诉 VIFM 过滤二进制文件、“.hi”文件和“.o”文件?

我已成功使用以下方法过滤“.hi”和“.o”:

:filter '\.(o|hi)$'

但是我该如何过滤二进制文件呢?

答案1

没有办法做到这一点。这是文件名过滤器和名称并未表明文件内容是否是二进制的。

基本上有两种可能的方法来实现这一点:

  • 查询每个文件的 mime-type
  • 检查每个文件的内容以评估其类型

这两个选项都涉及读取文件,而这并非您真正想要做的事情,因为它会降低性能(看看显示文件预览的文件管理器,即使有缓存,它们的速度也相当慢)。对于第二个选项,前 512 个字节就足够了,但如果您打开包含 1000 个文件的目录(/usr/bin例如),所有这些文件都应位于您的存储中,除非它们已被您的操作系统内核缓存,否则速度会非常慢。

相关内容