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 在 命令行工具 中排名
117 每月下载次数
96KB
2K SLoC
Pipr
Pipr 是一个命令行管道构建工具,用 Rust 编写!
Pipr 可以在后台自动评估你正在编辑的管道,在你编辑的过程中显示结果。这使得编写复杂的 sed
和 awk
链变得容易得多,因为你将立即看到它们的作用。
因为这样做可能会很危险,(想象一下输入 rm ./*.txt
来删除所有文本文件,但它已经在 rm ./*
下执行,删除了你工作目录中的所有文件),因此 Pipr 使用 bubblewrap 在一个隔离的只读环境中执行你的命令,使其安全使用。我不能保证任何东西,但你应该没问题 :D。
为了提高效率,Pipr 还具有命令历史和书签系统,允许你快速返回到之前工作过的管道或查看你以前是如何做的。
它还提供了一段系统,允许你定义可以在按按钮时插入的自定义段。这些可以用来插入常见的像 sed -r 's///g'
这样的内容,甚至允许你在插入段后指定光标应放置的位置。
你甚至可以在运行时查找你命令的文档和帮助。只需将光标悬停在所需的命令上,然后按 F5
。然后你可以选择不同的文档选项来查看。你可以在配置文件的 [help_viewers]
部分添加你自己的选项(例如 tldr)。
展示
安装
使用静态二进制文件
如果你没有可用的列出的安装选项,你可以简单地使用在 发布页面 上提供的静态二进制文件。这在大多数基于 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+A
、Ctrl+E
跳转到行的开头/结尾,Ctrl+U
清除整个文本框,以及Alt+Enter
插入换行符。
历史记录和书签
Pipr会保存您的命令历史记录,您可以通过Ctrl+P
和Ctrl+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后甚至会将最终命令放回终端的行缓冲区。
要使用这些,只需将相应文件中的行放入你的.bashrc
或config.fish
文件。
键映射
Fish: Ctrl+Alt+a
Bash: Alt+a
依赖关系
Pipr使用bubblewrap在隔离环境中执行你的命令,防止大多数(也许不是所有,我无法保证)危险,比如在输入命令时意外删除某些内容。
这意味着你需要在你的PATH
上找到bubblewrap,或者你可以通过传递no-isolation
标志来使用不安全模式。
依赖关系
~15–26MB
~360K SLoC