跟踪任务的命令行工具
项目描述
A cli TagSpaces 客户端,特别适合 The Secret Weapon 的Getting Things Done方法。
历史
2017年初几个月,我阅读了Joan Westenberg关于她如何使用Evernote跟踪所有需要做的事情的帖子。在文章中,她有一些建议非常宝贵
在深入讨论之前,我想明确一点。我所做的事情可能不适合你。没有生产力的万能钥匙,这个方法非常具体,是为了匹配我的工作流程和个人特质而设计的。
当然,这是一个非常好的建议。
虽然我相信Evernote是一个功能齐全的出色工具,具有所有可能需要的铃声和哨声,但它并不完全是我的风格。我更喜欢一种稍微不同的方法。我更倾向于命令行,主要是因为这是消除干扰的最简单方法。是的,你可以在浏览器和手机上关闭干扰,但在命令行中,你必须打开干扰。所以我尽量在这里花大部分时间。
大约一年前,我也发现了TagSpaces,它有一个我非常喜欢的理念:将信息直接嵌入到文件名中。这样无论你使用什么系统,信息都会随着文件一起移动。
在阅读了Joan的文章后,我开始尝试使用TagSpaces客户端。它工作得足够好,尽管它并不完全符合我想要的以键盘为中心的操作方式。使用Dropbox同步我的文件效果很好(尽管他们还没有为Raspberry Pi开发客户端,咕咕咕)。
我尝试过使用命令行,ls *1-now*或find . -name *3-soon*效果还不错,但仍然有点笨拙。正是出于这种需求,我开发出了Shibboleth。
指南
Shibboleth非常简单。目前它只支持类似Linux的系统(在Mac OS X上有些奇怪的问题,与readline有关),但我始终欢迎pull requests!
你所要做的就是安装shibboleth
python3 -m pip install shibboleth
或者更好的是,使用pipx
pipx install shibboleth
(和我一起加入这个充满荣耀的Python3 .6的未来吧!或者,如果你认为它很棒,而你生活在一个需要古老事物的可怕现实中,我提到过我可以接受pull requests吗?)
安装后,只需在任何你想放置东西的目录中启动它。也许你可以这样做
$ mkdir secret-weapon
$ cd secret-weapon
$ mkdir completed
$ shibboleth
Welcome to Shibboleth, the tool designed to be *your* secret weapon.
Your editor is currently vim. If you don't like that, you
should change or set your EDITOR environment variable.
⇀shibboleth:/home/wayne/secret-weapon
>new
Title: Try out shibboleth
这将启动你的编辑器——无论你的EDITOR环境变量设置为什么。如果没有设置,则是vim。如果你不喜欢Vim,可以使用:q退出。我添加了文本
尝试使用shibboleth,它对我有多有效?
保存并退出后,你应该会回到shibboleth
⇀shibboleth:/tmp/fnord/Try-out-shibboleth[20170406~011315 inbox].md
>show
********************************************************************************
Title: Try out shibboleth
Trying out shibboleth, how does it work for me?
********************************************************************************
⇀shibboleth:/tmp/fnord/Try-out-shibboleth[20170406~011315 inbox].md
>
它将自动选择新文件。你可能注意到它将空格更改为-。这是因为readline很复杂,很难用,不喜欢自动补全空格。但如果你能让它做到正确的事情,我提到过我可以接受pull requests吗?
最近(2022年1月),我再次想起了“收件箱”功能,所以我将其添加为默认的“优先级”,将在报告中显示。
当然,你可以使用priority或快捷键p更改选定文件/任务的优先级。
>p 6
⇀shibboleth:/tmp/fnord/Try-out-shibboleth[20170406~011315 6-waiting].md
>
你可以使用deselect取消选择,或者select不同的文件。或者创建另一个new文件
>new something completely different
⇀shibboleth:/tmp/fnord/something-completely-different[20170406~013345 inbox].md
>show
********************************************************************************
A man with three legs!
> 'e ran off!
********************************************************************************
⇀shibboleth:/tmp/fnord/something-completely-different[20170406~013345 inbox].md
p 4
⇀shibboleth:/tmp/fnord/something-completely-different[20170406~013345 4-later].md
>
你可以使用ls列出目录中的所有文件,使用cd更改目录。或者如果你只是想看看你现在应该做什么
>now
trying-out-shibboleth[20170406~013326 1-now].md
⇀shibboleth:/tmp/fnord/trying-out-shibboleth[20170406~013326 1-now].md
>later
something-completely-different[20170406~013345 4-later].md
⇀shibboleth:/tmp/fnord/trying-out-shibboleth[20170406~013326 1-now].md
>
或者如果你想有一个高级的视图,使用report
>report
inbox
1-now (1/2)
Trying-out-shibboleth[20220102~210020 1-now].md
2-next (0/2)
3-soon (0/2)
4-later (1/2)
something-completely-different[20220102~210043 4-later].md
5-someday (0/2)
6-waiting (0/2)
done (0/2)
None (0/2)
你可以使用work命令处理优先级或任何其他标签。
一旦你完成了某件事,你可以compelete它,或者对它done。
>done
⇀shibboleth:/tmp/fnord
>cd completed
⇀shibboleth:/tmp/fnord/completed
>ls
something-completely-different[20170406~013345 done].md
这基本上就是它的全部内容。我日常使用Shibboleth的方式
- 启动shibboleth。
- 选择
startup,其中包含我需要打开的一堆URL。 launch以打开所有的启动URL。work 6以查看等待列表,看看是否有什么需要从等待中移除。- 浏览
someday、later、soon和next,看看是否需要提高任何任务的优先级。 - 决定我需要最优先完成哪个
now,然后选择它。我可能会ed它来添加一些笔记,或者只是show来查看我应该做什么,然后可能会launch相关的URL。完成这项工作后,我会将其标记为done,然后继续下一项。
随着通过电子邮件等方式进入的新任务,我会继续添加新的任务。我已经使用 shibboleth 作为我的任务界面一段时间了,它非常适合调整优先级、创建新任务和编辑已有的任务。
如果您对使 shibboleth(更)出色有什么建议,我很乐意与您合作,将您的pull request 提交进来。或者,如果我有时间或者认为这是一个杀手级功能,我确信我会将其添加到我的列表中。当然,使用 shibboleth :)
理念
我更喜欢尽可能保持无第三方依赖。 我不反对添加某种插件架构,但是(插件已添加!)我非常希望 shibboleth 保持为一个单独的文件。这样你就可以将其放入一个目录中,就可以使用了。
插件
我已经添加了插件架构!目前它要求插件位于 ~/.shibboleth/plugins。插件将被附加到 Shibboleth 的主循环中,就像方法是,使用文件名作为命令名。例如,如果你想添加一个很糟糕的番茄计时器,你可以通过在插件目录中创建一个包含以下内容的 pom.py 来实现
import time
def handle(self, line):
print('Pomodoro', line)
time.sleep(60*20) # sleep for 20 minutes
print('Pomodoro done!')
如果你想让它直接进入编辑器,你可以在函数末尾添加
self.edit('')
在函数末尾。
自动 Git 跟踪
当命令完成时,任何未跟踪/已提交的更改将自动添加并提交。这意味着在执行 did 或 done 或标记文件时,将自动跟踪。
目前 git 是唯一支持的 VCS 后端,但应该可以合理地扩展到其他后端,如 mercurial 或 fossil。
待办事项
添加 BSD 许可证- 完成 2018-10-01添加其他标记支持- 完成 2018-10-01- 配置。我们希望能够配置 shibboleth,对吧?不同的颜色和其他东西。
变更日志
[0.9.1] - [2023-10-13]
变更
done和completed现在不再将done任务移动到不同的目录。
修复
pls inbox现在可以正常工作了。report <priority>现在将只列出该优先级的任务。work现在在给定的标记集有问题时不再崩溃。也有更多有用的输出。
[0.9.0] - [2022-10-29]
添加
- 添加了审查中的启动和查看功能。
- 添加了标记/取消标记功能中的标记自动完成。
修复
- 如果审查更改了选定的任务,则该任务将被取消选中。
[0.8.0] - [2022-01-03]
添加
- “inbox”作为优先级。
变更
- “inbox”作为默认优先级。
修复
- 恢复了
1-now作为默认工作优先级。
[0.7.1] - [2022-01-02]
修复
- 修复了当你的 shibboleth 目录是包含在库中并且库中的另一个目录有修改文件的子目录时的错误。
[0.7.0] - [2022-01-02]
添加
- 自动 git 跟踪.
clear优先级以...清除优先级!- 标题现在将自动插入到文件中。
变更
did现在将插入带有标题的时间戳,而不是依赖于行尾的空白空间进行 CommonMark 渲染。work现在支持任意标记匹配,带有自动完成。允许工作优先级标签或其他标签。
修复
- 错误提供的
log命令不再崩溃,改进了日志记录。 - 不再将 vim 标志传递给所有编辑器。
[0.6.0] - [2021-06-17]
修复
- 未处理的异常现在将被捕获并写入 shibboleth.log,而不是崩溃。
- 添加了
launch命令,该命令可以启动任务文件中找到的标题中的 URL。
[0.5.0] - [2019-10-15]
添加
work子命令,允许您快速处理特定的优先级。默认情况下,它将工作在1-now,但是work 2将处理“下一个”任务。version命令,用于显示 shibboleth 的当前版本。
变更
- 更新了提示的生成方式。不应该引起问题,但需要注意,特别是在插件中。
- 默认优先级现在是
now- 这有助于处理遗漏的任务。
[0.4.1] - [2019-10-14]
变更
cmdloop传递*args和**kwargs- 适用于从插件运行循环。
[0.4.0] - [2019-07-31]
添加
- 查看命令,让您在任务之间循环,并更新优先级。
变更
- 不允许重复标签,尽管如果是在 Shibboleth 之外添加,则不会受到影响。
[0.3.0]
添加
- 插件系统。将
.py文件添加到~/.shibboleth/plugins以扩展 Shibboleth 的功能。 - 为变更日志功能保留变更日志。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源代码分发
构建分发
shibboleth-0.9.1-py3-none-any.whl 的散列值
| 算法 | 散列值 | |
|---|---|---|
| SHA256 | 568398837e901a24bf329061190995aa6e1f700331b2f7e0bf20a247fff2043f |
|
| MD5 | b71e1be2f78a6a0ebc11785f9ea999a8 |
|
| BLAKE2b-256 | 00c89c352af063426910be5cb50225453e6449c5a1ec5e97996e3368a0e8abe8 |