63 lines
3.8 KiB
Markdown
63 lines
3.8 KiB
Markdown
---
|
||
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
|
||
```
|
||
|
||

|
||
|
||
**好吧,其实我并不觉得这样安装很方便**,并且观察安装过程中的输出,其实就是手动操作的自动版本,哈哈哈。我自己是直接下载下来,修改配置文件,然后使用`alias`命令配合`-d`选项指定配置文件来使用,修改完之后就能用了。
|
||
|
||
|
||
## 二、配置与使用
|
||
|
||
程序主体就是`todo.sh`文件,所有的动作的执行都是由这个文件完成的;`todo.cfg`是配置文件,可以自定义各种颜色,用于优先级,context,project以及key:value组合,还可以指定对哪一列进行排序显示;`todo_completion`文件是该应用(命令)的命令补全文件,可以在安装的时候指定,或者安装之后以`source`命令添加到`.bashrc`中。刚安装好之后,添加任务,显示是这样的,没有任何配色的修改,看起来非常朴素。
|
||
|
||

|
||
|
||
## 三、个性化配置
|
||
|
||
作为一个自认为不浮夸,但是喜欢整洁的强迫症患者,原始的展示方式肯定是不能满足我的需求,所以我做了如下改动:
|
||
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.txt`内容有了明显的格式区分,如上图所示,每一行分为四列,每一列由一个竖线分隔,且有各自的意义和格式,对于设定优先级的任务,背景颜色会一直渲染到行尾(这是源程序所不支持的),当时我还在github上提了一个issue,作者回复说这样做就没有那么**generic**了,嗯我很认同的他的看法,不过我还是改成了适合自己的格式。
|
||
|
||
> **Respect!!!**
|
||
|
||
|
||
## 四、参考文档
|
||
|
||
- [todo.txt-cli](https://github.com/todotxt/todo.txt-cli)
|