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 命令行工具
3MB
4K SLoC
命令组织工具,用于保存所有珍贵的命令 💎🐉
什么是命令组织者?
命令组织者允许您保存经常使用但过于复杂或长的命令。对于每个 保存的 命令,hoard
会保存
- 命令(使用可自定义的标记参数化,默认
#
) - 名称
- 描述
- 命令所在的命名空间
- 标签(可选)
如果您在庞大的命令历史中迷失了方向,例如,在一千个已经运行的 docker
命令中找不到一个特定的 docker
命令,只需 保存 它。有了 名称 和 描述,您将更容易再次找到它。当您一个月后再次查找该命令时,查看您的 保存的 命令。
hoard
不打算替换像 fzf
、atuin
或类似实用程序这样的 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