3 个稳定版本

2.0.1 2023 年 8 月 11 日
2.0.0 2023 年 8 月 9 日
1.0.0 2023 年 8 月 7 日

#15 in #任务管理

MIT 许可证

53KB
1.5K SLoC


vGTD 是 Volt 包的任务管理工具。它基于 David Allen 的 Getting Things Done® 系统。

目前,vGTD 只作为一个 CLI 工具,以命令形式在终端中使用。然而,未来我们计划为该工具添加 TUIGUI 模式。

vGTD 在 工作区 中工作,工作区是包含列表和其他设置的文件。 列表 是包含项目和任务的容器。一个 项目 是包含任务的容器。一个 任务 有一个 名称描述状态,用于描述单个可执行任务。

创建工作区

首先,你需要一个工作区。工作区只是本地目录中名为 .gtd.toml 的文件。为了创建它,使用 init 命令

vgtd init # Create the workspace file with default contents

如果你的工作区已损坏或你尝试手动创建文件但失败,请使用 reset 命令重置工作区

vgtd reset # Reset the workspace file to the default contents

处理列表

接下来,你可以使用 lists 命令查看当前可用的列表

vgtd lists # Show the lists in the current workspace

这将显示工作区中的列表,以及它们名称后面的任务和项目数量。

你可以使用 list create 创建一个列表,使用 list remove 删除一个列表

vgtd list create "example" # Creates the list "example"
vgtd list remove "example" # Removes the list "example"

要查看列表的内容,请使用 list show

vgtd list show "example" # Show the contents of the list "example"

这将显示列表中的任务和项目。项目将显示为单行,其名称右侧显示其中包含的任务数量。要同时查看每个项目的任务,请将 --all 选项或其缩写 -a 添加到 list show 的末尾

vgtd lists show "example" --all # Show the projects' tasks as well

目前,你的列表可能为空,因此你将看到一条“列表为空”的消息。

项目和容器路径

vGTD希望用户将项目和任务的定位想象成系统中的文件夹和文件一样。项目和任务的名称通常很长且具有描述性,因此通过名称选择任务和项目以在命令中使用将是一项繁琐的任务。为了避免这种情况,使用索引来引用项目和任务(这就是为什么在使用list showproject show时,会在项目名称和任务名称之前看到索引)。当前,索引是递增的基数,但将能够与我们将要在不久的将来实施的索引到字母系统一起工作。

这意味着“收件箱”列表中第一个任务的路径是inbox/1,第二个是inbox/2,依此类推。有趣的是,“收件箱”列表中第一个项目的路径也是inbox/1。vGTD能够通过上下文来区分它们,因为通常来说,命令需要的是一个任务的路径还是任务容器(可以是列表或项目)的路径。一个任务包含在项目中的路径示例是inbox/1/3,即索引为3的任务,位于索引为1的项目内,该项目位于列表inbox内。

处理项目

通常来说,组织任务不仅要在列表中,还要在这些列表内的项目中。不仅如此,根据David Allen先生的观点,项目往往是许多任务的来源。要创建一个项目,使用project create,为它提供创建项目的列表名称和项目名称

vgtd project create "inbox" "test" # Create project "test" within the list "inbox"

您可以使用project show查看它的内容

vgtd project show "inbox/1" # Show the contents of the first project within "inbox"

如果您想删除一个项目,请使用project remove

vgtd project remove "inbox/1" # Remove the first project within the "inbox" list

处理任务

您现在知道如何处理列表、项目和项目路径,这是非常好的,但如果不了解如何处理任务,那么掌握如何操作任务容器是毫无用处的。所以,让我们开始吧。

要创建一个任务,使用task create,提供将包含该任务的容器路径和要创建的任务名称

vgtd task create "inbox" "Implement the global workspace" # Create a task inside the "inbox" list

要删除您不小心添加的任务或想要删除的任务,请使用task remove并提供任务的路径

vgtd task remove "inbox/1" # Remove the first task of the "inbox" list

要更改任务的状态,请使用task mark并为其提供任务的路径。您还可以提供要更改的任务状态;默认情况下,vGTD假定您想将其标记为“完成”。目前,任务可以是“完成”或“待办”,但在未来您将能够添加自己的状态或更改默认状态。

vgtd task mark "inbox/1" # Mark the first task of the "inbox" list as done

移动项目

现在您可以创建、删除和操作任务、项目和列表。太棒了!但如果您在一个错误的列表中创建了任务怎么办?您是否需要先删除它,然后再次在正确的列表中创建它?不需要!您只需要移动项目。要将任务从任务容器移动到另一个容器,请使用task move并为其提供任务的路径和目标任务容器的路径(是的,您可以将任务从项目移动到列表,或从项目移动到其他列表中的项目)。

vgtd task move "inbox/1" "next" # Move the first task of the "inbox" list to the "next" list

您不仅可以移动任务,还可以移动整个项目!使用project move,您可以将项目从一个列表移动到另一个列表。

vgtd project move "inbox/1" "next" # Move the first project of the "inbox" list to the "next" list

全局模式

vGTD 的初始和基本目的是与本地任务库协同工作,这样您可以更轻松地控制单个项目。然而,有时拥有一个全局任务库非常有用,例如,您可以存储您的个人任务和项目。

为了满足这一需求,vGTD 在 2.0 版本中引入了 全局工作区 功能。

要从任何地方访问全局工作区,只需像平时一样使用任何命令,但需要在可执行程序名称后添加 --global 选项(或其简写形式 -g)。

例如,命令

vgtd task create inbox "Some personal task"

变为

vgtd --global task create inbox "Some personal task"

这不会在本地工作区中创建任务,而是在全局工作区中创建(除非您位于全局工作区的目录中,在这种情况下,它们是相同的)。

全局工作区文件的存储位置

vGTD 致力于成为一个跨平台工具,由于我们支持的系统之间存在差异,全局工作区文件将根据您使用的操作系统而位于不同的位置。这种支持来自 directories crate,因此以下表格直接从中提取(我们还在路径末尾添加了 .gtd.toml 文件名)

平台 路径
Linux $HOME/.gtd.toml
macOS $HOME/.gtd.toml
Windows {FOLDERID_Profile}/.gtd.toml[^1]

[^1]: 这通常意味着 C:\Users\<username>\.gtd.toml

获取帮助

如果您忘记了命令的语法,想知道参数的含义,或者发现可以更改命令行为的选项,您始终可以使用 help 子命令。

  • vgtd help 将总结主要命令。
  • vgtd list help 将总结用于处理列表的命令。
  • vgtd task help 将总结用于处理任务的命令。
  • vtd task create help 将提供有关 task create 命令的信息。
  • 等等。

依赖项

~2–12MB
~100K SLoC