#命令 #命令行 #hoard #yaml #save #organizer #ChatGPT

app hoard-rs

hoard - 使用 Rust 编写的 CLI 命令组织者

17 个版本 (9 个稳定版)

1.4.2 2023 年 8 月 6 日
1.3.2 2023 年 7 月 25 日
1.3.1 2023 年 2 月 10 日
1.3.0 2022 年 12 月 21 日
0.1.7 2021 年 10 月 7 日

#246 in 命令行工具

MIT 许可证

3MB
4K SLoC

Crates.io version Crates.io version Crates.io version

命令组织工具,用于保存所有珍贵的命令 💎🐉

Example usage

什么是命令组织者?

命令组织者允许您保存经常使用但过于复杂或长的命令。对于每个 保存的 命令,hoard 会保存

  • 命令(使用可自定义的标记参数化,默认 #
  • 名称
  • 描述
  • 命令所在的命名空间
  • 标签(可选)

如果您在庞大的命令历史中迷失了方向,例如,在一千个已经运行的 docker 命令中找不到一个特定的 docker 命令,只需 保存 它。有了 名称描述,您将更容易再次找到它。当您一个月后再次查找该命令时,查看您的 保存的 命令。

hoard 不打算替换像 fzfatuin 或类似实用程序这样的 shell 历史查找器。它应该与它们一起使用。

现在支持 chatGPT 集成 💎

💌 目录

📦 安装

从源码

最好使用 rustup 来设置 Rust 工具链,然后您可以运行

cargo install hoard-rs

或者自己构建它

cargo build --release

./target/release/hoard 中找到二进制文件,将其移动到所需位置(例如 /usr/local/bin/hoard)或运行

cargo install --path .

Linux

已测试于

  • Ubuntu
  • Arch
  • EndeavourOS

通过运行以下命令安装 hoard

./install.sh

如果您正在运行 fish shell

LATEST_RELEASE=1.4.2 ./install.fish

AUR(Arch Linux)

paru -S hoard

Homebrew(macOS)

brew tap Hyde46/hoard
brew install hoard

MacPorts(macOS)

sudo port install hoard-cli

更多信息请点击 此处

Windows

最好从源代码安装,祝你好运

使用Shell插件自动完成

hoard作为插件安装以启用自动完成。根据您的shell,运行以下命令之一。要使它对下一个shell会话保持安装状态,请在您的.bashrc中添加带有绝对路径的source命令,或者将插件的全部内容复制粘贴到您的.bashrc中。

bash

source src/shell/hoard.bash

zsh

source src/shell/hoard.zsh

fish

source src/shell/hoard.fish

Nix

hoard软件包位于nixpkgs软件包仓库中。

可以使用nix-env -安装它,临时使用nix-shell -获取它,或者将其添加到您的配置中。

🤸 使用

保存新命令

hoard new

在保存命令时,如果未知参数,请输入一个#(或您的自定义令牌,位于~/.config/hoard/config.yml)您也可以这样命名参数

echo "My name is #first and I live at #city. Did I tell you my name, #first?" 

在将#first放置时,您只需在命令中每个出现的位置执行一次。参数名称定义为从令牌开始到找到第一个空格字符的所有内容。或者,您可以通过放置一个!(或您的自定义令牌,位于~/.config/hoard.config.yml)来确定命名参数的结束位置

echo "My name is #first named parameter! and I live at #city. Did I tell you my name, #first?" 

通过命令宝库搜索

<Ctrl-h>

或者,如果没有作为插件安装,仍然可以执行交互式搜索,尽管没有自动完成。这假设用户从UI通过鼠标复制命令

hoard list

当以shell插件运行hoard list并选择一个参数化命令时,hoard将询问所有缺失参数以在发送完整命令到您的shell输入之前输入。

如果本地目录中存在一个.trove.yml文件,hoard将只加载此宝库文件,而不会显示您的“全局”宝库!(通过将read_from_current_directory编辑为~/.config/hoard/config.yml来禁用)

chatGPT集成

当运行hoard list或通过hoard快捷键时,按Ctrl-a会要求输入提示。描述您的命令应该执行的操作,chatGPT将根据您的提示创建和保存一个新的命令。

如果您还没有一个OpenAI账户来生成API密钥,请转到这个页面。(由于消耗的token量很少,这非常便宜。大约0.01美元可以生成30个命令)

您需要设置环境变量

export OPENAI_API_KEY=abcabcabc

或者,为了永久解决方案,在您的~/.config/hoard/config.yml中设置gpt_api_key

chatGPT不一定总是以相同的格式回复。有时,生成的命令将被添加到描述中。使用编辑模式<TAB>/<Ctrl-E>编辑保存的命令到正确的格式。

与其他终端同步命令

您可以通过使用hoard sync在多个终端中保持命令同步

首先注册一个新账户

hoard sync register

然后使用您的新账户登录

hoard sync login

将您的本地命令保存到线上

hoard sync save

在另一台电脑/终端上使用相同的账户登录,然后运行

hoard sync get

这将合并您的本地trove文件与云端的文件。如果存在冲突,您将收到提示如何处理。然而,如果您对合并结果不满意,您可以选择撤销最新的 hoard sync get 命令

hoard sync revert

如果您想托管自己的同步服务器,请查看它的 仓库。然后,更新您的配置文件以指向新的服务器位置 ~/.config/hoard/config.yml

删除一个命令

hoard remove <name>

删除一个命名空间下的所有命令

hoard remove_namespace <namespace_name>

编辑一个命令

hoard edit <name>

信息

显示配置文件和trove文件的位置

hoard info

设置参数令牌

更改配置文件的参数令牌

hoard set_parameter_token <parameter_token>

trove.yml 或指向trove.yml文件的url导入其他trove文件

hoard import /path/to/trove.yml

hoard import https://troves.com/new_trove.yml

导出trove文件

hoard export /path/to/exported/trove.yml

⚡ Hoard 列表快捷键

显示GUI中的命令列表

<F1>

命令列表中的下一项

<Ctrl-N> / <Down-Arrow>

命令列表中的上一项

<Ctrl-P> / <Ctrl-Y> / <Up-Arrow>

下一个命名空间标签页

<Ctrl-L> / <Right-Arrow>

上一个命名空间标签页

<Ctrl-H> / <Left-Arrow>

选择命令

<Enter>

退出

<Esc> / <Ctrl-D> / <Ctrl-C> / <Ctrl-G>

依赖

~24–37MB
~681K SLoC