授权协议: BSD
开发语言: Python 查看源码 »
操作系统: 跨平台
收录时间: 2019-02-13
提 交 者: 程六金

PathPicker

Facebook PathPicker是一个简单的命令行工具,它解决了从bash输出中选择文件的永久性问题.PathPicker将:

  • 解析所有传入行以查找看起来像文件的条目

  • 在方便的选择器的用户界面中呈现管道输入

  • 允许您:

    • 编辑您喜欢的所选文件 $EDITOR

    • 用它们执行任意命令

通过观看简单的演示最容易理解:

例子

安装PathPicker后,使用它就像管道一样简单fpp。它需要各种各样的输入 - 尝试以下所有选项:

  • git status | fpp

  • hg status | fpp

  • git grep "FooBar" | fpp

  • grep -r "FooBar" . | fpp

  • git diff HEAD~1 --stat | fpp

  • find . -iname "*.js" | fpp

  • arc inlines | fpp

还有你能想到的任何其他东西!

要求

PathPicker需要Python> 2.6或> 3.0。

支持的壳:

  • 击完全支持并且效果最好。

  • ZSH也受支持,但在命令行模式下不会有像别名扩展这样的功能。

  • 最新版本支持csh / fish / rc,但在旧版本的PathPicker中可能存在怪癖或问题。但请注意,如果您的默认shell和当前shell不在同一系列中(bash / zsh ... vs fish / rc) ,需要则手动将环境变量导出$SHELL到当前的外壳。

安装PathPicker

家酿

使用Homebrew for mac安装PathPicker最简单:

  • brew update (因为它是新的,所以下拉配方)

  • brew install fpp

Linux的的

在Debian的系统上,通过可以从这里安装Debian的软件包来完成安装要在本地构建包,请运行以下步骤:

$ git clone https://github.com/facebook/PathPicker.git 
$ cd PathPicker/debian 
$ ./package.sh 
$ ls ../fpp_0.7.2_noarch.deb

在Arch Linux上,可以从Arch User Repository(AUR)安装PathPicker.AUR fpp-git包

如果您使用的是其他系统,或者更喜欢手动安装,请按照以下说明操作。

手动安装

但是,如果您使用的是没有自制的系统,那么安装PathPicker仍然非常容易,因为它实际上只是一个调用的Python的bash的脚本这些步骤或多或少概述了流程:

cd /usr/local/ # or wherever you install apps
git clone https://github.com/facebook/PathPicker.git
cd PathPicker/

在这里,我们从回购中的的bash脚本创建一个符号链接,/usr/local/bin/假设它在当前 $PATH

ln -s "$(pwd)/fpp" /usr/local/bin/fpp
fpp --help # should work!

附加组件

对于tmux用户,您可以另外安装tmux-fpp添加密钥组合以在最后收到的路径上运行PathPicker stdout。它使得跳转到文件选择模式变得更加容易 - 请在此处查看

高级功能

如上所述,PathPicker允许您还使用指定的文件执行任意命令以下是显示。git checkout针对所选文件执行的命令的示例:

所选文件将附加到命令前缀以形成最终命令如果您需要命令中间的文件,则可以使用。$F令牌,例如:

cat $F | wc -l

另一个重要的注意事项是PathPicker默认只选择文件系统上存在的文件。如果您想跳过此(可能是选定的已删除文件git status),只需使用--no-file-checks(或-nfc简称)标志运行PathPicker。

PathPicker的工作原理

PathPicker是的bash脚本和一些小型的Python模块的组合它基本上有三个步骤:

  • 首先,bash的脚本将所有标准重定向到蟒模块,该模块解析并提取文件名候选。这些候选词是用一系列正则表达式提取的,因为PathPicker的输入可以是来自另一个程序的任何标准输出。我们不是为每个程序制作专门的解析器,而是将所有内容视为嘈杂的输入,并通过正则表达式选择候选者。为了限制对文件系统的调用次数(检查存在),我们对我们提取的候选者有相当的限制。

这样做的缺点是,没有扩展名(如test)的单个单词的文件将无法匹配。这是PathPicker的已知限制,意味着它有时无法在输入中找到有效文件。

  • 接下来,curses向用户呈现构建的选择器UI。在这里,您可以选择一些文件进行编辑或输入要执行的命令。

  • 最后,蟒蛇脚本将命令输出到bash的文件,该文件稍后由原始的bash脚本执行。

它不是世界上最优雅的建筑,但(我们认为)提供了很多实用性。

文档和配置

有关所有文档和配置选项,请参阅输出fpp --help

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

PathPicker 的相关资讯

还没有任何资讯

PathPicker 的相关博客

Linux命令行软件神器

ag:比grep、ack更快的递归搜索文件内容 安装:yum install the_silver_searcher 常用: ag -g <File Name> 类似于 find . -...

命令行工具PathMarker

一直使用Guake 终端,Guake提供的其中一个功能是快速打开。 大概的意思就是,显示在终端上的数据会经过匹配,如果符合一定的规...

Linux中哪些工具堪称神器?

作者:int32bit www.zhihu.com/question/59227720 ag:比grep、ack更快的递归搜索文件内容。 Github地址: https://github.c...

相见恨晚的15个 Linux 神器,你可能一个都没见过

ag:比grep、ack更快的递归搜索文件内容。 tig:字符模式下交互查看git项目,可以替代git命令。 mycli:mysql客户端,支持语法...

15 个 Linux 神器,你会用几个?

ag:比grep、ack更快的递归搜索文件内容。 tig:字符模式下交互查看git项目,可以替代git命令。 mycli:mysql客户端,支持语法...

Linux 这些工具堪称神器!

点击上方“杰哥的IT之旅”,选择“置顶公众号” 干货、福利第一时间送达! ag:比grep、ack更快的递归搜索文件内容。 tig:字...

Linux 这些工具堪称神器!

阅读本文大概需要 3 分钟。 作者:int32bit 来源:http://t.cn/R1FKgdN ag:比grep、ack更快的递归搜索文件内容。 tig:字符模...

15 个 Linux 神器,你会用几个?

作者:int32bit http://t.cn/R1FKgdN **ag:**比grep、ack更快的递归搜索文件内容。 **tig:**字符模式下交互查看git项目,可...

The Art of Command Line

重点看Everyday use

好玩的Linux命令-1

Ag:比grep、ack更快的归递搜索文件内容 1:首先在linux创建个sh文件->ag.sh 2:在ag.sh里面输入如下内容并保存 #!/bin/bash...

PathPicker 的相关问答

还没有任何问答,马上提问

评论 (0)

加载中
更多评论
0 评论
0 收藏
分享
在线直播报名
返回顶部
顶部