#time #tracker #time-tracking #cli #command-line-tool

bin+lib idid

记录、编辑和查看您所做的事情

1 个不稳定版本

0.1.0 2024年5月3日

1771命令行工具

MIT 许可证

66KB
1K SLoC

idid

Build Status crates.io

idid 是一款用于跟踪各种任务或成就耗时的时间管理命令行工具。它允许用户以简单、结构化的格式记录、编辑和查看他们的活动。

目录

安装

$ cargo install idid

待办事项:添加包管理器支持。有兴趣的人吗?

从仓库构建

要构建 idid,请按照以下步骤操作

克隆仓库

$ git clone https://github.com/jidn/idid-rust.git

导航到项目目录

$ cd idid-rust

构建项目

$ cargo build --release

可选地,将可执行文件添加到您的 PATH

$ export PATH="$PATH:/path/to/idid-rust/target/release/"

快速开始

idid 围绕记录您刚刚完成的事情的理念。当您记录成就时,持续时间会从您的上一条记录中计算出来。因此,您一天中的第一个成就是开始。如果您需要更改时间、插入条目或编辑条目,只需编辑 TSV 文件,所有内容都会相应调整。

开始您的一天

您一天中的第一个成就是启动 idid 记录当天的活动。

$ idid start
Starting at 07:55 AM.  All right!

哇,很好的反馈。如果您不需要响应,只需使用 --quiet 标志。

更改开始时间很容易。只需给出过去的分钟数或时间。例如,当我进来时,Tim 在大厅里停下我,花大约 10 分钟讨论一项内容,现在是上午 8:05。

$ idid start -t 10 
Starting at 07:55 AM.  Keep it up.

$ idid start -t 7:55 
Starting at 07:55 AM.  Sensational.

额外成就

当您完成一项任务、里程碑或值得注意的项目时,记录您所做的事情。

$idid add cleared inbox
Mon 08:20 AM for 00:25  Well done!

很好。我看到记录了时间,持续时间为 HH:MM 格式,还有一些积极的反馈。

稍后,您忘记记录 10 分钟前在 9:50 修复问题的内容。要更改时间,使用 -t 选项并指定分钟数或时间。

$ idid add -t 10 fixed issue #42
Mon 09:50 AM for 01:30  Well done!

$ idid add -t 9:50 fixed issue #42
Mon 09:50  01:30  Well done!

记住您正在使用 shell 输入,所以一些字符可能会引起问题。最常见的问题是单引号、分号和与号。您必须引用它们或使用自然语言。

非连续的:午餐和长时间休息

午餐或延长休息可能不是你想跟踪的事情。出于某种原因,我要向其汇报的人不希望包括这段时间。在离开前添加一条关于你到目前为止所做事情的记录,使用 idid add 'project poodles work-in-progress (WIP)' 或类似的内容。回来后现在使用 idid start

编辑你的历史记录

idid 通过允许你使用你喜欢的文本编辑器来修改,使得更改历史变得容易。如果你像我一样,vi 系列编辑器是你的朋友,下面的操作将在你的编辑器中打开 TSV 文件,并将你放置在底部或最新条目。

$ idid edit

如果你使用的是其他文本编辑器。文件通常位于 $XDG_DATA_HOME/idid/idid.tsv~/.local/share/idid/idid.tsv

现在你可以进行更改。

  • 删除重复条目。
  • 添加你忘记的成就。
  • 纠正错别字。

注意事项。

  • TSV 必须按时间顺序排列。持续时间取决于它。
  • 不允许空白行和注释。
  • 不要更改起始文本。

展示你的日常

展示你今天的成就列表将很棒。

$ idid show today

是的,我知道日期看起来有点奇怪。它是(RFC 3339)[http://tools.ietf.org/html/rfc3339] 中指定的格式。虽然“可读性”可能存在争议,但它有几个优点,例如在排序时保持时间顺序,定义严格,并且有共同的库支持。

你可以提供任意数量的 **DATE** 或使用 --range 与两个日期一起使用以获取该范围内的所有条目。

日期格式

单词 today 是一个特殊的 DATE,同样 yesterday 也是。你也可以使用过去的天数,例如 idid show 0idid show today 相同。虽然将 DATE 作为数字使用可能会有点困难,但任何小于一千的数字都是有效的。

一个更简单的格式是两位数的月份和日期,例如 MM-DDMMDD;分隔符是可选的。只要日期在过去 264 天左右,你就不需要指定年份。当需要年份时,使用 YY-MM-DDYYYY-MM-DD 将给出确切的日期。

你也可以使用缩写的星期几(DOW),例如 'mon'、'tue'、...、'sun'。只需记住,如果今天是星期一,那么 'mon' 是上周一而不是今天。如果你想添加额外的星期,则在 DOW 后附加一个数字。上周一的星期一是 mon1

如果今天是 2024 年 4 月 1 日星期一,那么 2024 年 3 月 31 日星期日可以用以下任何一种方式表示

  • 昨天
  • 1
  • 03-31 或 0331
  • 2024-03-31
  • sun

我知道。这似乎有点过分。但是我在用它们,所以使用最适合您需求的那一个。如果您需要快速提醒,请执行 idid show --help。长格式 --help 显示了许多日期格式。

使用

idid 工具为管理您的成就提供了几个命令和选项。以下是一个简要概述

命令

  • add:添加新的成就。
  • edit:使用您的默认编辑器编辑 TSV(制表符分隔值)文件。
  • last:查看从今天最后一条记录以来的时长或显示 TSV 文件中的特定行数。
  • start:开始记录当天的时长。
  • show:显示所有已记录的成就。
  • sum:按天总结成就。

选项

  • --tsv <FILE>:指定自定义的 TSV 文件而不是默认位置。
  • -h, --help:显示帮助信息。
  • -V, --version:显示 idid 的版本。

有关详细使用说明和示例,请运行 idid --helpidid <command> --help

贡献

欢迎为 idid-rust 做贡献!如果您想贡献,请按照以下步骤操作

  • 分支仓库。
  • 创建您的功能分支(git checkout -b feature/my-feature)。
  • 提交您的更改(git commit -am 'Add new feature')。
  • 将更改推送到分支(git push origin feature/my-feature)。
  • 创建新的拉取请求。

许可证

idid 在 MIT 许可证的条款下分发。

依赖项

~6–16MB
~215K SLoC