3 个稳定版本
2.0.1 | 2023 年 8 月 11 日 |
---|---|
2.0.0 | 2023 年 8 月 9 日 |
1.0.0 | 2023 年 8 月 7 日 |
#15 in #任务管理
53KB
1.5K SLoC
vGTD 是 Volt 包的任务管理工具。它基于 David Allen 的 Getting Things Done® 系统。
目前,vGTD 只作为一个 CLI 工具,以命令形式在终端中使用。然而,未来我们计划为该工具添加 TUI 和 GUI 模式。
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 show
和project 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