#期刊 #想法 #笔记 #任务 #编辑器 #效率

bin+lib mj

我的日记 - 捕获想法、处理日记、笔记和任务的个人工具,在您最喜欢的文本 $EDITOR 中操作

15 个不稳定版本 (3 个重大变更)

0.4.3 2019 年 10 月 31 日
0.4.2 2019 年 10 月 24 日
0.3.4 2019 年 10 月 21 日
0.2.4 2019 年 10 月 7 日
0.1.0 2019 年 10 月 4 日

200文本编辑器

自定义许可

91KB
2.5K SLoC

我的日记

build status

我的日记 是一个生产力工具,可以帮助您管理您的想法、日记、笔记和任务。 我的日记 仅仅是在您的默认编辑器上的一层薄薄的外壳,它将用来以清晰且开放的结构来组织您的文本笔记。

文本用户界面模式

asciicast

命令行界面模式

初始化新仓库

要初始化一个新仓库,让 我的日记 执行以下操作

mkdir -p ~/MyJournals/demo
cd ~/MyJournals/demo
mj init .

这将产生最小化的文件夹结构

.
├── ideas
├── journals
├── notes
└── tasks

处理想法

要开始为 超级项目 捕获想法,请输入以下命令

mj idea edit super-project

这将在您的默认 $EDITOR 中打开,您可以在此处写下所有相关信息。在您退出编辑器后,我的日记 将确保您的想法存储在正确的结构中

.
├── ideas
│   └── super-project.md
├── journals
├── notes
└── tasks

要继续在 edit 命令中处理 超级项目 想法

mj idea edit super-project

要列出注册的想法,请输入以下内容

mj ideas list

最后,要删除一个想法,您可以执行以下操作之一:使用 edit 命令删除内容并保存文件(我的日记 将为您删除空文件),或者调用以下类似的 remove 命令

mj idea remove super-project

注意,iideaideas 是同义词,可以互换使用。

处理日记

日记的处理方式与想法略有不同。让我们看看它是如何工作的

mj journal edit

这将在您的默认 $EDITOR 中打开,您可以在此处写下今天的相关信息。在您退出编辑器后,我的日记 将确保您的今天日记记录存储在正确的结构中(假设此刻的 today 对我来说是 2019-10-02

.
├── ideas
├── journals
│   └── 2019-10-02
│       └── journal.md
├── notes
└── tasks

要继续处理今天的日记,请输入相同的 edit 命令

mj journal edit

如果您可能想处理其他日期的日记,可以使用以下命令

mj journal edit 1d

这将让您处理昨天的日记。如果您需要特定日期,您随时可以做到

mj journal edit 2019-09-04

这将自然地让您从 2019-09-04 开始处理您的日记。

要按注册时间降序列出已注册的日记,只需输入以下内容

mj journals list

最后,要从特定日期删除日记,您可以选择 edit 并清除内容后保存文件(My Journal 将负责删除空文件),或者通过调用以下 remove 命令

mj journal remove 1d

这将删除昨天的日记(如果您愿意,这里也可以使用特定日期)。或者,您可以使用以下命令删除今天的日记

mj journal remove

请注意,jjournaljournals 是同义词,可以互换使用。

处理笔记

笔记的处理方式与 想法日记 不同。让我们看看它是如何工作的

mj note edit algorithms sieve-of-eratosthenes

这将打开您的默认 $EDITOR,您可以在其中写下有关主题 埃拉托斯特尼筛法 的所有相关信息,该主题属于 算法 类别。退出编辑器后,My Journal 将确保您的笔记存储在正确的结构中

.
├── ideas
├── journals
├── notes
│   └── algorithms
│       └── sieve-of-eratosthenes.md
└── tasks

要继续添加到您的笔记,您可以使用相同的 edit 命令

mj note edit algorithms sieve-of-eratosthenes

要列出所有类别中的现有笔记,请输入以下内容

mj notes list

要列出现有类别,请输入以下内容

mj notes list --categories

最后,要列出特定类别的笔记,只需运行以下命令

mj notes list algorithms

最后,要从特定类别删除笔记,您可以选择 edit 并清除内容后保存文件(My Journal 将负责删除空文件),或者通过调用以下 remove 命令

mj note remove algorithms sieve-of-eratosthenes

请注意,nnotenotes 是同义词,可以互换使用。

处理任务

任务的处理方式与 笔记 类似。让我们看看它是如何工作的

mj task edit super-project

这将打开您的默认 $EDITOR,您可以在其中写下有关超级项目的所有相关信息。退出编辑器后,My Journal 将确保您的任务存储在正确的结构中

.
├── ideas
├── journals
├── notes
└── tasks
    └── super-project
        └── tasks.md

要继续为 super-project 中的任务工作,您可以使用相同的 edit 命令

mj task edit super-project

要列出所有项目中的所有现有任务,请输入以下内容

mj tasks list

要列出现有项目,请输入以下内容

mj tasks list --projects

最后,要列出特定项目中的任务,只需运行以下命令

mj tasks list super-project

最后,要从特定项目删除任务,您可以选择 edit 并清除内容后保存文件(My Journal 将负责删除空文件),或者通过调用以下 remove 命令

mj task remove super-project

请注意,ttasktasks 是同义词,可以互换使用。

配置文件

My Journal 可在 ~/.config/my-journal/config 文件中进行配置。以下是如何查看默认配置的示例

global_vault_root = '/home/kuznero/.local/share/my-journal'
view_delimiter = '¶'
input_delimiter = '::'
task_not_done_prefix = '-'
task_not_done_display_prefix = '☐'
task_in_progress_prefix = '*'
task_in_progress_display_prefix = '⟳'
task_done_prefix = '+'
task_done_display_prefix = '☑'

这些设置是全局设置,适用于所有我的日记仓库。但我的日记允许您为任何仓库单独覆盖任何设置。为此,您需要在我的日记仓库的根目录下创建一个名为.mjconfig的文件,并将全局配置文件中的任何设置放置在其中,例如以下内容

view_delimiter = '¶'
input_delimiter = '::'
task_not_done_prefix = '-'
task_not_done_display_prefix = '?'
task_in_progress_prefix = '~'
task_in_progress_display_prefix = '.'
task_done_prefix = '+'
task_done_display_prefix = '↷'

为您的shell生成完成脚本

为了使事情更简单,我的日记允许您为支持的shell之一(Bash、Fish、Zsh、PowerShell或Elvish)生成完成脚本。

为了启用我的日记在您的shell中的完成功能,您只需运行以下命令之一

source <(mj completion bash)
source <(mj completion fish)
source <(mj completion zsh)
source <(mj completion powershell)
source <(mj completion elvish)

依赖关系

~9.5MB
~160K SLoC