#shell #utility #tool #execute-command #terminal #cli

app pipr

一个交互式构建复杂 shell 管道的命令行工具

9 个版本

0.0.16 2021 年 11 月 6 日
0.0.15 2020 年 10 月 1 日
0.0.14 2020 年 9 月 6 日
0.0.12 2020 年 6 月 27 日
0.0.10 2020 年 4 月 26 日

2800命令行工具 中排名

Download history 28/week @ 2024-03-11 20/week @ 2024-03-18 30/week @ 2024-04-01 13/week @ 2024-04-08 9/week @ 2024-04-22 12/week @ 2024-04-29 56/week @ 2024-05-06 8/week @ 2024-05-13 9/week @ 2024-05-20 2/week @ 2024-05-27 46/week @ 2024-06-03 34/week @ 2024-06-10 22/week @ 2024-06-17 15/week @ 2024-06-24

117 每月下载次数

MIT 许可协议

96KB
2K SLoC

Pipr

Pipr 是一个命令行管道构建工具,用 Rust 编写!

Pipr 可以在后台自动评估你正在编辑的管道,在你编辑的过程中显示结果。这使得编写复杂的 sedawk 链变得容易得多,因为你将立即看到它们的作用。

因为这样做可能会很危险,(想象一下输入 rm ./*.txt 来删除所有文本文件,但它已经在 rm ./* 下执行,删除了你工作目录中的所有文件),因此 Pipr 使用 bubblewrap 在一个隔离的只读环境中执行你的命令,使其安全使用。我不能保证任何东西,但你应该没问题 :D。

为了提高效率,Pipr 还具有命令历史和书签系统,允许你快速返回到之前工作过的管道或查看你以前是如何做的。

它还提供了一段系统,允许你定义可以在按按钮时插入的自定义段。这些可以用来插入常见的像 sed -r 's///g' 这样的内容,甚至允许你在插入段后指定光标应放置的位置。

你甚至可以在运行时查找你命令的文档和帮助。只需将光标悬停在所需的命令上,然后按 F5。然后你可以选择不同的文档选项来查看。你可以在配置文件的 [help_viewers] 部分添加你自己的选项(例如 tldr)。

展示

showcase

安装

Packaging status

使用静态二进制文件

如果你没有可用的列出的安装选项,你可以简单地使用在 发布页面 上提供的静态二进制文件。这在大多数基于 Unix 的系统上应该可以工作。

Arch Linux:使用 AUR

Pipr 在 AUR 上可用,所以你可以简单地使用你喜欢的 AUR 辅助工具来安装它。

$ yay -S pipr-git

或对于二进制文件

$ yay -S pipr-bin

使用Cargo

如果您已安装Rust环境并且安装了cargo,则可以使用cargo安装pipr

$ cargo install pipr

使用方法

只需启动pipr

pipr中按下F1键即可获取帮助。

基础知识

您可以通过按回车键来评估一个命令。

还有自动评估模式:只需按下F2即可启用,在这种模式下,每次按键后都会运行您的命令。

文本框的工作方式与您预期的相同,支持Ctrl+ACtrl+E跳转到行的开头/结尾,Ctrl+U清除整个文本框,以及Alt+Enter插入换行符。

历史记录和书签

Pipr会保存您的命令历史记录,您可以通过Ctrl+PCtrl+N在历史记录中循环。您也可以通过按下F4来查看整个历史记录。在自动评估模式下,您不需要经常按Enter键,因此pipr可能会丢失一些历史记录。如果您想避免这种情况,可以通过按下F3进入“偏执历史模式”,在这种情况下,Pipr将保存任何成功运行的命令到历史记录中。

如果您非常喜爱某个命令,也可以通过按下Ctrl+S来将其书签。您可以通过按下Ctrl+B查看所有已书签的命令。

代码片段

很多时候,您会重复输入相同的内容,例如awk '{print $...}'sed 's/.../.../g'。为了使这个过程更高效,pipr支持代码片段:通过按下Ctrl+V,您可以打开所有配置的代码片段的菜单。只需按下相应的键即可选择它,并将其插入到光标位置,光标将放置在预定位置。您可以在配置文件中配置自己的代码片段!

帮助查看器

您曾经在一个长的管道中工作,突然忘记了那个您真正需要的标志吗?没问题,只需将光标悬停在命令上并按下F5。这将打开一个菜单,让您可以选择打开命令的帮助输出或man页面。您还可以在配置文件中配置更多的帮助查看器。

输出查看器

如果您需要更深入地检查命令的输出,pipr内置的输出窗口可能不够用。但这不是问题,因为您可以在喜欢的分页器中打开输出。只需按下F6并选择您的输出查看器。这些也是可配置的,因此您可以添加更具体的东西,如fx

输出缓存

如果你的命令使用了慢命令的输出,或者可能是HTTP请求的结果,每次按键重新运行该命令可能不是一个好主意。为此,你可以将鼠标悬停在任意|符号上,然后按F7来缓存到该管道之前的内容。这样,除非你更改它,否则它将不会重新运行。

(如果你使用的是带有速率限制的外部API,这尤为重要!)

Tab补全

嗯,pipr有这个功能。永远不会再忘记你的文件名了!

配置文件

Pipr的配置存储在~/.config/pipr/pipr.toml。你可以在这里添加自己的输出查看器、帮助查看器、代码片段等等。此外,还可以配置默认启用自动评估模式等。

如果你不小心从配置中删除了某些内容,不必担心:如果你传递了--config-reference标志,pipr可以打印出它的注释良好的默认配置。

Finish_hook

完成钩子(在配置文件中配置)是在你关闭pipr后要执行的一个命令,它将完成的bash命令行通过stdin传入。这可以用来将你的工作传入xclip,存储在剪贴板中,从而可以快速粘贴到终端。

终端集成

在这个存储库的shell_integration/文件夹中,你可以找到一些用于不同交互式shell的脚本。这些脚本允许你通过简单的按键从终端调用pipr,将当前行缓冲区插入到pipr中。如果你使用fish,关闭pipr后甚至会将最终命令放回终端的行缓冲区。

要使用这些,只需将相应文件中的行放入你的.bashrcconfig.fish文件。

键映射
Fish: Ctrl+Alt+a
Bash: Alt+a

依赖关系

Pipr使用bubblewrap在隔离环境中执行你的命令,防止大多数(也许不是所有,我无法保证)危险,比如在输入命令时意外删除某些内容。

这意味着你需要在你的PATH上找到bubblewrap,或者你可以通过传递no-isolation标志来使用不安全模式。

依赖关系

~15–26MB
~360K SLoC