3 个版本 (破坏性更新)
0.3.0 | 2024 年 1 月 27 日 |
---|---|
0.2.0 | 2024 年 1 月 21 日 |
0.1.0 | 2024 年 1 月 21 日 |
在 文件系统 中排名第 629
36KB
780 行
Tag
一个用于用标签组织纯文本文件的简单程序。
安装
使用 cargo
只需运行 cargo install tag
即可为您系统安装 tag
。
从 AUR
运行 paru -S tag
使用 AUR 安装 tag
。
作为二进制文件
只需访问 发布页面 并下载适用于您系统的最新版本。
用法
要使用 tag,您必须在文本文件的第一个行添加标签列表。标签行如下所示
tags: [#tag1 #tag2]
标签行中的标签以 #
开头,后跟字母(一些非 ASCII 字符也受支持)、数字、_
和 -
。此标签行 必须是 文件的第一个行,且 不得 超过一行。您可以在 tagline.pest 下找到标签行语法。
一旦您已将标签行添加到本地文件中,您就可以运行 tag
。 tag
将搜索指定目录的所有子目录,并检查标记文件是否与您的搜索查询匹配。
Tag 的帮助信息
Search for local text files with a simple tagging system.
Usage: tag [OPTIONS] <PATH> [QUERY]
Arguments:
<PATH> The path that will be searched
[QUERY] Search query for the tags
Options:
-s, --silent
Only print the paths of matched files
-c, --command <COMMAND>
A command that will be executed on matched files
-f, --filter-command <FILTER_COMMAND>
A command that must run successfully for a file to be accepted
-n, --no-color
Disable coloring
-q, --query-stdin
Receive a query from the standard input
-i, --inspect
Enter an interactive inspection mode to view each file individually
-h, --help
Print help
-V, --version
Print version
查询包含运算符和标签。可用的运算符是 &
用于逻辑 AND,|
用于逻辑 OR,以及 !
作为一元 NOT。此外,您可以通过使用括号来嵌套查询。查询可能如下所示
#tag1 & #tag2 | (!#tag3 & #tag4)
此查询将匹配所有包含 #tag1
AND #tag2
或不包含 #tag3
但同时包含 #tag4
的文件。您可以在 query.pest 下找到查询语法。
命令
tag
支持两个标志,用于执行系统命令。 -c
/--command
标志允许你添加一个命令,该命令将在每个匹配的文件上执行。 -
/--filter-command
标志检查执行的系统命令是否成功退出。如果不成功,即使找到的文件包含与查询匹配的标签,该文件也不会匹配。你可以在你的命令中使用字符串 #FILE#
。此字符串将被替换为与查询匹配的文件的文件路径。例如,命令
tag "#asdf" . -f "grep 'something' #FILE#" -c "echo 'somethingelse' >> #FILE#"
将仅匹配带有 #asdf
标签且包含字符串 "something" 的文件。然后将字符串 "somethingelse" 添加到每个找到的文件中。
检查模式
您可以使用 -
/--inspect
使用检查模式。在此模式下,将显示每个文件的内容以及您的 -
命令和找到的标签的输出。键盘快捷键显示在屏幕底部。
此外,检查模式支持在您的文件上执行其他命令。这些命令的格式与文件或过滤器命令上的命令相同。
依赖关系
~9-18MB
~217K SLoC