#task-list #task #todo #markdown #org-mode

app tax

tax 是一个命令行任务列表管理器

6 个版本

0.0.7 2020 年 8 月 7 日
0.0.6 2020 年 8 月 7 日
0.0.4 2020 年 7 月 28 日

#2724命令行工具

MIT 许可证

795KB
2K SLoC

tax,CLI 任务列表管理器

显示/管理 ~/tasks.md 中的任务,或从 $TAX_FILE 指定的文件中的任务(如果设置了的话)。

任务以 Markdown 格式显示

# Things to do

- [x] Do the laundry
- [ ] **Call mom**
- [ ] Send that email

tax 提供了基本的 CLI 操作来管理任务列表。

任务文件格式

任务

任务是单独的文本行。

未完成的任务以 - [ ] 开头。完成的任务以 - [x] 开头。

- [ ] This is an open task
- [x] This is a completed task

任务中的注释

任务可以有注释。这对于保持任务名称简短同时提供详细信息很有用。

- [ ] Do this thing // this a comment; see http://example.com/issue/#555

注释由 // 标识,除非它立即位于 : 之前。这样,URL 就可以包含在任务中,而不会被视为注释。

例如,这个任务没有注释

- [ ] http://github.com/tax/issues

焦点任务

加粗标记的任务是焦点任务。当显示任务列表的子集时,它们将优先于非焦点任务显示。

- [ ] **This is a focused task**

焦点任务可以有自己的注释;在这种情况下,只有任务名称被聚焦,而不是注释

- [ ] **This is a focused task** // with a comment, outside of the focus

部分

任务文件可以可选地包含部分,将任务列表细分为子列表。

部分由任何级别的 Markdown 标题表示。

当任务文件只有一个部分时,tax 的行为与没有部分时相同。

# Job

- [ ] Send that email

## Perso

- [ ] Fix the roof
- [ ] Prepare Korean BBQ

部分可以被聚焦。当一个部分被聚焦时,tax 将只显示它包含的任务。

命令

tax list[-a|--all]

别名 taxtax ls

打印列表中的所有打开的任务,或如果有焦点部分,则打印焦点部分的打开任务。

如果设置了 -a|--all,则无论部分焦点如何,都会列出所有打开的任务。

tax current

打印列表中第一个打开(如果有焦点,则为焦点)的任务。在提示或 tmux 状态中很有用。

税务周期

类似于 tax current,但如果没有焦点任务,则每分钟更改任务。

税务类别

别名 tax view

直接打印任务文件的内容,不进行任何处理。

tax check $TASK_NUMtax uncheck $TASK_NUM

检查/取消检查与给定数字对应的任务 $TASK_NUM

tax focus $TASK_NUMtax blur $TASK_NUM

聚焦/模糊与给定数字对应的任务 $TASK_NUM

聚焦的任务在Markdown格式中会加粗显示。

示例

- [ ] **This is a focused task**

聚焦的任务会通过 tax currenttax cycle 命令以优先级高于非聚焦任务的方式显示。

tax focus $SECTIONtax blur $SECTION

聚焦与给定名称对应的章节 $SECTION

聚焦的章节在Markdown格式中会加粗显示。

示例

# **This is a focused section**
- [ ] Some task

当章节聚焦时,tax 只会显示该章节的任务。

tax add[-s"章节"|--章节"章节"] "任务"

别名: tax pushtax prepend

将给定的任务添加到任务列表中。

如果提供了 -s|--section,任务将被添加到匹配的章节中。

如果章节已聚焦,任务将被添加到聚焦的章节。

否则,任务将被添加到任务列表的顶部。

tax append[-s"章节"|--章节"章节"] "任务"

类似于 tax add,但将任务附加到列表中而不是推到顶部。

tax prune

从任务列表中删除所有已检查的任务。

tax edit

$EDITOR 中打开当前任务文件。

tax which

告知当前正在使用哪个任务文件。对脚本很有用。

构建/安装

构建和安装需要Rust: https://rust-lang.net.cn/tools/install

cargo install tax

使用

包含在提示符中

# Put tax in your $PATH or:
# alias tax=/path/to/tax

然后,要在您的bash提示符中显示当前任务

export PS1='= $(tax current)
> '

tax current 替换为 tax cycle 以每分钟更改显示的任务。

包含在tmux状态中

在您的 tmux.conf 中,例如

set -g status-right '[...your status config...] #(/path/to/tax cycle)'

颜色支持

如果 tax 在TTY上下文中运行,它将发出ANSI转义序列以加粗显示聚焦的任务,而不是Markdown加粗标记。

如果 tax 不在TTY中运行(例如,在shell $PS1 中),可以通过设置环境变量 CLICOLOR_FORCE=1 强制发出ANSI转义序列。

您可以通过设置环境变量 NO_COLOR=1 禁用所有ANSI转义序列。

注意:tmux状态行不解释ANSI转义序列(不是TTY)。

对更改做出反应

如果环境变量 $TAX_CHANGE_CMD 已设置且包含有效的命令,tax 将在它对任务文件进行的每次更改后将其作为 sh 命令执行。

tax$TAX_CHANGE_CMD 暴露一组环境变量,以提供有关更改的信息。

  • 对于所有tax命令

    • $TAX_FILE:更改的任务文件的绝对路径
    • $TAX_FILE_FOLDER:包含任务文件的文件夹的绝对路径
    • $TAX_CMD:应用更改的命令;以下之一 addcheckeditfocusprune
    • $TAX_OPERATION:对文件应用的操作;以下之一 APPENDPREPENDCHECKUNCHECKEDITFOCUSBLURPRUNE
    • $TAX_MESSAGE:更改的文本描述,如果可用,包括任务名称
  • 对于add、check、uncheck、focus、blur(更改后的值)命令

    • $TAX_TASK_NUM:更改的任务在任务列表中的编号(从1开始计数)
    • $TAX_TASK_NAME:更改的任务的名称
    • $TAX_TASK_PLAIN_NAME:更改的任务的纯名称(如果有焦点标记,则不带)
    • $TAX_TASK_LINE:更改的任务的完整Markdown行
    • $TAX_TASK_LINE_NUM:更改的任务的行号
    • $TAX_TASK_CHECKED:如果任务已完成,则为 1,否则为 0
    • $TAX_TASK_FOCUSED:如果任务处于焦点状态,则为 1,否则为 0

我使用以下命令来对我的任务文件进行版本控制

export TAX_CHANGE_CMD='git -C "$TAX_TAXFILE_FOLDER" commit -am "$TAX_MESSAGE"'

许可证

请参阅 LICENSE.md

依赖项

约4–17MB
约185K SLoC