3 个版本
0.1.2 | 2023年1月3日 |
---|---|
0.1.1 | 2023年1月3日 |
0.1.0 | 2023年1月3日 |
#2119 in 命令行工具
90KB
2K SLoC
Jeff
Jeff 是一款命令行笔记管理应用程序,类似于 Obsidian。
安装
使用 cargo 安装
$ cargo install jeff
使用
使用以下命令创建保险库
$ jf vault newvault ~/vaults
在这里,newvault 是保险库的名称,而 '~/vault' 是其创建的位置(该位置应为绝对文件系统路径,并且已存在或 jeff
将引发错误)。
如果不对 vault
命令提供任何参数,则将列出所有保险库。
$ jf vault
提供 '-l' 标志将列出所有保险库及其位置。
$ jf vault -l
此时,只会列出 newvault。
进入保险库
$ jf enter newvault
enter
命令也用于切换到其他保险库。
创建笔记和文件夹
$ jf note newnote
$ jf folder newfolder
note
和 folder
都可以类似地工作,并在 当前文件夹 中创建相应的项目。当首次创建保险库时,当前文件夹 被设置为根目录。
创建模板
为了避免编写像每周笔记这样的样板代码,jeff
提供了笔记模板。
# list all templates
$ jf template
# create and edit a new template "weekly_note"
$ jf template weekly_note
然后可以使用模板创建笔记,通过提供 --template (-t)
以及模板的名称。
# create a new note from the "weekly_note" template
$ jf note reflection --template weekly_note
# or equivalently
$ jf nt reflection -t weekly_note
在当前保险库中创建和编辑每日笔记
每日笔记存储在当前保险库的最高级别目录中的 YYYY-MM-DD.md
。使用 jf today
将编辑任何现有每日笔记。如果没有每日笔记,系统将提示您创建一个。
# Create daily note YYYY-MM-DD? (y/n)
$ jf today
更改文件夹
$ jf chdir newfolder
chdir
命令将当前文件夹切换到指定的位置。
必须提供从当前文件夹到位置的相对路径。接受标准文件系统路径作为有效输入,例如 ../folder1/somefolder/
。
$ jf chdir ..
这将切换回保险库的根目录。
打印当前文件夹的目录树
$ jf list
当需要时,list
命令将打印当前文件夹的目录树。所有笔记将以黄色突出显示,保险库将以红色突出显示,文件夹将呈现蓝色。
这就是以该保险库的根目录作为当前文件夹时目录树将看起来像什么。
newvault # red
├── newfolder # blue
└── newnote # yellow
可以使用 jf config <item-name>-color <color>
配置突出显示的颜色。也可以使用 jf config <item-name>-color
设置颜色,这将显示包含所有可用选项的选择框。
将保险库颜色设置为红色
jf config vault-color red
使用选择设置文件夹颜色
jf config folder-color
文件系统操作
命令 remove
如其名所示,在所有项目(保险库、笔记或文件夹)上工作。
$ jf remove note newnote
命令 rename
和 move
被以类似方式使用,但每个都需要一个额外的参数。
命令 rename
将新名称作为其第三个参数。
$ jf rename note newnote somenewnote
命令 move
将新位置作为其第三个参数。
对于保险库,路径规则与 vault
命令相同,对于其他项目,路径规则与 chdir
命令相同。
$ jf move note newnote /newfolder/
这些命令将项目类型(保险库、笔记或文件夹)作为其第一个参数。
命令 vmove
与 move
类似,但它将项目(笔记或文件夹)从当前保险库的当前文件夹移动到另一个保险库的根目录,并使用该保险库名称作为参数而不是位置。
$ jf vmove note newnote somevault
到目前为止使用的每个关键字(命令和项目名称)都可以与其两个字母别名互换,例如,move
命令也可以写成
$ jf mv nt newnote /newfolder/
处理 Jeff 的配置
$ jf config
将显示当前配置。添加额外的参数,例如 jf config <config-type> <config-value
来设置特定值
$ jf config editor vim
获取帮助
运行不带命令的 jf 或使用 help
命令或 -h 标志以获取主帮助信息。
$ jf
使用 help
命令或 -h 标志与命令一起使用,以获取相应的帮助。
$ jf help vault
$ jf vault -h
构建
克隆仓库并进入目录
$ git clone https://github.com/DevinLeamy/Jeff
$ cd Jeff
运行以下命令以安装依赖项并构建/编译程序。
$ cargo build
然后运行在 'target/debug/'(或将其添加到您的路径)中创建的可执行文件。
或者,直接运行工具
$ cargo run -- *args*
在 '--' 后传递命令和参数。
测试
可以使用
$ cargo test -- --test-threads=1
笔记
Jeff 是由 jot 引导的,但最终成为了一个带有新功能、不同设计和开源维护的全面重写。欢迎贡献!
依赖关系
~4–16MB
~140K SLoC