--- layout : post title : "命令行TODO备忘录" subtitle : "todo.txt cli" date : 2023-02-01 19:08:31 author : "Manford Fan" catalog : false header-img : "img/post-bg-universe.jpg" tags : - Todo - Cli - Terminal --- 前段时间在逛Github的时候,发现了一个备忘录应用——Todo.txt Cli。挺有意思的,它是基于终端的一个计划备忘录,支持新建计划,修改(替换计划),删除计划,完成计划,设定优先级,根据不同的文字或者符号组合,显示不同的颜色,还支持关键词过滤。总的来说,对于经常使用终端的人来讲,是一个比较实用的小工具,整个应用都是使用shell编写的,如果对shell比较熟悉(一般经常使用终端的人,cli也不会太弱),还可以根据自己的需求魔改某些功能,使之更符合个人的使用习惯。 ## 一、安装应用 配置过程还是比较简单的,[github主页](https://github.com/todotxt/todo.txt-cli)也给出来了MacOS和Linux平台的安装方法,很显然不支持Windows,Windows平台也不屑于使用命令行来记录,Windows:我沦落到这个地步了??? 以Linux平台为例,只需要下载下来repo,然后在repo的根目录,按照顺序执行如下命令即可,如果需要的话,可以在安装的时候指定安装路径,配置文件路径以及该命令的补全文件路径: ```bash $ make $ make install CONFIG_DIR=/etc INSTALL_DIR=/usr/bin BASH_COMPLETION=/usr/share/bash-completion/completions $ make test ``` ![todo_install](/img/posts/todo_install.png 'todo_install') **好吧,其实我并不觉得这样安装很方便**,并且观察安装过程中的输出,其实就是手动操作的自动版本,哈哈哈。我自己是直接下载下来,修改配置文件,然后使用`alias`命令配合`-d`选项指定配置文件来使用,修改完之后就能用了。 ## 二、配置与使用 程序主体就是`todo.sh`文件,所有的动作的执行都是由这个文件完成的;`todo.cfg`是配置文件,可以自定义各种颜色,用于优先级,context,project以及key:value组合,还可以指定对哪一列进行排序显示;`todo_completion`文件是该应用(命令)的命令补全文件,可以在安装的时候指定,或者安装之后以`source`命令添加到`.bashrc`中。刚安装好之后,添加任务,显示是这样的,没有任何配色的修改,看起来非常朴素。 ![todo_origin_show](/img/posts/todo_origin_show.png 'todo_origin_show') ## 三、个性化配置 作为一个自认为不浮夸,但是喜欢整洁的强迫症患者,原始的展示方式肯定是不能满足我的需求,所以我做了如下改动: 1. 修改`todo.cfg`配置文件 - 设定todo/done/report.txt文件的路径 - 修改color map,给优先级项目染色 - 给project/context/number/date/key:value等指定规则的字符设定颜色 - 修改todo.txt的显示格式 2. 配置`todo.sh`文件的`alias`别名 3. 增加todo_format.py以及watch_todo.sh两个脚本文件 最后修改好之后显示如下: ![todo_modified_show](/img/posts/todo_modified_show.png 'todo_modified_show') 修改之后的`todo.txt`内容有了明显的格式区分,如上图所示,每一行分为四列,每一列由一个竖线分隔,且有各自的意义和格式,对于设定优先级的任务,背景颜色会一直渲染到行尾(这是源程序所不支持的),当时我还在github上提了一个issue,作者回复说这样做就没有那么**generic**了,嗯我很认同的他的看法,不过我还是改成了适合自己的格式。 > **Respect!!!** ## 四、参考文档 - [todo.txt-cli](https://github.com/todotxt/todo.txt-cli)