#text-file #text-search #tagging #plain-text #organization #search

bin+lib tag

使用简单的标签系统搜索本地文本文件

3 个版本 (破坏性更新)

0.3.0 2024 年 1 月 27 日
0.2.0 2024 年 1 月 21 日
0.1.0 2024 年 1 月 21 日

文件系统 中排名第 629

MIT 许可证

36KB
780

Tag

一个用于用标签组织纯文本文件的简单程序。

安装

使用 cargo

只需运行 cargo install tag 即可为您系统安装 tag

从 AUR

运行 paru -S tag 使用 AUR 安装 tag

作为二进制文件

只需访问 发布页面 并下载适用于您系统的最新版本。

用法

要使用 tag,您必须在文本文件的第一个行添加标签列表。标签行如下所示

tags: [#tag1 #tag2]

标签行中的标签以 # 开头,后跟字母(一些非 ASCII 字符也受支持)、数字、_-。此标签行 必须是 文件的第一个行,且 不得 超过一行。您可以在 tagline.pest 下找到标签行语法。

一旦您已将标签行添加到本地文件中,您就可以运行 tagtag 将搜索指定目录的所有子目录,并检查标记文件是否与您的搜索查询匹配。

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