6 个版本
0.0.7 | 2020 年 8 月 7 日 |
---|---|
0.0.6 | 2020 年 8 月 7 日 |
0.0.4 | 2020 年 7 月 28 日 |
#2724 在 命令行工具
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]
别名 tax
,tax ls
。
打印列表中的所有打开的任务,或如果有焦点部分,则打印焦点部分的打开任务。
如果设置了 -a|--all
,则无论部分焦点如何,都会列出所有打开的任务。
tax current
打印列表中第一个打开(如果有焦点,则为焦点)的任务。在提示或 tmux 状态中很有用。
税务周期
类似于 tax current
,但如果没有焦点任务,则每分钟更改任务。
税务类别
别名 tax view
。
直接打印任务文件的内容,不进行任何处理。
tax check $TASK_NUM
和 tax uncheck $TASK_NUM
检查/取消检查与给定数字对应的任务 $TASK_NUM
。
tax focus $TASK_NUM
和 tax blur $TASK_NUM
聚焦/模糊与给定数字对应的任务 $TASK_NUM
。
聚焦的任务在Markdown格式中会加粗显示。
示例
- [ ] **This is a focused task**
聚焦的任务会通过 tax current
和 tax cycle
命令以优先级高于非聚焦任务的方式显示。
tax focus $SECTION
和 tax blur $SECTION
聚焦与给定名称对应的章节 $SECTION
。
聚焦的章节在Markdown格式中会加粗显示。
示例
# **This is a focused section**
- [ ] Some task
当章节聚焦时,tax 只会显示该章节的任务。
tax add[-s"章节"|--章节"章节"] "任务"
别名: tax push
,tax 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
:应用更改的命令;以下之一add
、check
、edit
、focus
、prune
$TAX_OPERATION
:对文件应用的操作;以下之一APPEND
、PREPEND
、CHECK
、UNCHECK
、EDIT
、FOCUS
、BLUR
、PRUNE
$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