3 个版本
使用旧的 Rust 2015
0.1.2 | 2018年9月7日 |
---|---|
0.1.1 | 2018年8月27日 |
0.1.0 | 2018年8月27日 |
在 #fuzzy-finder 中排名 18
每月下载 24 次
42KB
1K SLoC
fzyr
fzyr 是一个简单且快速的模糊文本搜索工具,它既是一个 Rust 库,也是一个独立的可执行文件。
为什么?
fzyr
存在是因为我想在学习 Rust 时创建一个模糊搜索器库。然而,你可能发现它对你的目的很有用。
fzyr
与 fzy
非常相似,因此继承了它的优点(至少到 2018 年 8 月为止)。对于大多数用途,它可以作为一个即插即用的替代品。
与 fzy
的优势
- 它在 Windows 上运行!或者至少应该如此,尚未实际测试,如果不行,请告诉我 🖥
- 它与所有 Unicode 字符串一起工作!你好,世界其他地方 🗺️
- 你可以使用 Cargo!跨平台包管理 📦
- 它是一个 Rust 库!在你的项目中使用该算法 😀
与 fzy
的劣势
- 它的测试不如充分
- 它不支持任意 tty 输入/输出(仅 stdin/stdout)
- 交互式模式需要更多的工作
安装
Cargo
您可以使用 Cargo 在任何支持的平台上安装,这是 Rust 的出色包管理器。
$ cargo install fzyr
Linux
您可以使用 Cargo,或者如果您愿意,可以安装为 snap
$ snap install fzyr
Homebrew
可能在某个时候出现...
Windows
使用 Cargo
用法
查看 fzy 了解一些用法示例。
在文件中搜索包含 "something" 的行
$ cat very-long-file | fzyr -q something
交互式搜索文件
$ find . -type f | fzyr
使用以下选项进行探索
$ fzyr -h
库文档
即将推出...
算法
该算法几乎与 fzy
的相同。这意味着
- 搜索不区分大小写(所有字符都转换为它们的 Unicode 定义的低字符版本,如果有的话)
- 结果必须包含整个查询字符串,顺序正确,但字母不必连续
- 所有结果都给出了一个数值评分,并按评分从高到低返回
- 优先考虑连续字符和单词/文件名开头的字符
- 优先考虑更短的结果
待办事项清单
如果您有动力,请随意提交PR
- 改进交互模式
- 库文档
- 对
search_locate()
的测试 - 集成测试
- 基准测试
- 适用于各种操作系统(OS)的软件包
- 零分配搜索
- 任意tty输入/输出
依赖项
约6-14MB
约130K SLoC