[init] initial commit

This commit is contained in:
git
2023-06-03 15:58:09 +08:00
commit 6b53719306
182 changed files with 29167 additions and 0 deletions

View File

@@ -0,0 +1,62 @@
---
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平台的安装方法很显然不支持WindowsWindows平台也不屑于使用命令行来记录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`是配置文件可以自定义各种颜色用于优先级contextproject以及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)