你是否曾想过在管道中停止并编辑文本?有了vipe ,你就可以!
以brew search 的输出为例:
$ brew search proxy
==> Formulae
aws-es-proxy metaproxy proxytunnel
dnscrypt-proxy mitmproxy sproxy
haproxy oauth2_proxy tinyproxy
ios-webkit-debug-proxy ocproxy twemproxy
libproxy proxychains-ng
==> Casks
proxyman
如果我们想调用brew info ,以获得这些公式的更多细节呢?
即使我们用管道将输出转到其他地方(例如cat),我们仍然有公式和卡斯的标题:
$ brew search proxy | cat
==> Formulae
aws-es-proxy
dnscrypt-proxy
haproxy
ios-webkit-debug-proxy
libproxy
metaproxy
mitmproxy
oauth2_proxy
ocproxy
proxychains-ng
proxytunnel
sproxy
tinyproxy
twemproxy
==> Casks
proxyman
我们可以写一些中间步骤来删除我们不需要的行。但是让我们的管道停下来,让我们编辑流,然后继续,这不是很好吗?
$ brew search proxy | magic | while read formula; do brew info $formula; done
事实证明,vipe 可以成为这种魔力!它将停止并给你一个vim会话,其中有前面的管道的输出。当你写/退出vim会话时,该输出将被发送到管道中的后续命令。真棒!"。
安装vipe
你可以在OSX上获得vipe ,作为moreutils brew公式的一部分:
$ brew install moreutils
使用方法
然后把它放到你想在管道中间快速编辑文本的地方。它也是查看管道中间输出的一个好方法:
$ brew search proxy | vipe | while read formula; do
brew info "$formula";
done
当我们运行该命令时,brew search proxy ,输出直接进入vim缓冲区:
1 ==> Formulae
2 aws-es-proxy
3 dnscrypt-proxy
4 haproxy
5 ios-webkit-debug-proxy
6 libproxy
7 metaproxy
8 mitmproxy
9 oauth2_proxy
10 ocproxy
11 proxychains-ng
12 proxytunnel
13 sproxy
14 tinyproxy
15 twemproxy
16
17 ==> Casks
18 proxyman
vim编辑的好处 我们可以把这个缓冲区处理成我们想要的任何东西:
1 mitmproxy
我们把它修剪成一个有趣的公式如何?当我们保存并退出时,流水线继续进入while read 循环,将所有的输入发送到brew info 。
"/private/var/folders/n6/gxxgmjhs1599x195xzdbnp_40000gn/T/mL0nDL6bCD" 1L, 10C written
mitmproxy: stable 4.0.4 (bottled), HEAD
Intercept, modify, replay, save HTTP/S traffic
https://mitmproxy.org
Not installed
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/mitmproxy.rb
==> Dependencies
Required: openssl@1.1 ✔, protobuf ✘, python ✘
==> Options
--HEAD
Install HEAD version
==> Analytics
install: 6,017 (30 days), 15,281 (90 days), 46,094 (365 days)
install_on_request: 5,777 (30 days), 14,445 (90 days), 44,138 (365 days)
build_error: 0 (30 days)
很好!