bash 中的文件查看器 PathPicker

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

的码云指数为
超过 的项目
加载中

评论(0)

暂无评论

暂无资讯

暂无问答

The Art of Command Line

重点看Everyday use

2015/06/30 23:20
21
0
命令行的艺术

熟练使用命令行是一种常常被忽视,或被认为难以掌握的技能,但实际上,它会提高你作为工程师的灵活性以及生产力。本文是一份我在 Linux 上工作时,发现的一些命令行使用技巧的摘要。有些技巧...

2016/01/04 10:08
79
0
这篇文章可以帮你掌握命令行的艺术

熟练地操作命令行是一项常常被我们忽视的技能,又或者说我们将它看的太过神秘。不过作为一名软件工程师,掌握这一技能可以很大程度上提升我们工作的 灵活性,提高工作效率。这篇文章是我在与...

2015/09/13 10:00
104
0
Awesome Python

A curated list of awesome Python frameworks, libraries and software. Inspired by awesome-php....

2016/03/29 13:52
149
1
Python支持库大全

Awesome Python A curated list of awesome Python frameworks, libraries and software. Inspired by awesome-php. Awesome Python Environment Management    环境管理 Package Manageme...

2016/03/17 16:12
884
1
可爱的python测试开发库(python测试开发工具库汇总)

欢迎转载,转载请注明来源: github地址 谢谢点赞 本文地址 Python测试开发库 参考资料 https://github.com/vinta/awesome-python https://github.com/atinfo/awesome-test-automation http...

开启全民编程时代!Python小学生都要学的编程语言!

如要问现在最流行与时髦的计算机编程语言是什么?毫无疑问,Python领衔主演,网络上一句“人生苦短,我用Python” 不知换走了多少程序员的真心! Python近些年随着大数据,云计算、AI等领域的...

02/14 22:39
5
0
Python frameworks, libraries, software and resources

Awesome Python A curated list of awesome Python frameworks, libraries, software and resources. Inspired by awesome-php. Awesome Python Admin Panels Algorithms and Design Pattern...

2018/12/26 15:59
7
0
提升逼格.Summary.提升逼格的那些运维开发资料汇总?

## 开发相关 ### FLASK专区 * awesome-flask https://github.com/humiaozuzu/awesome-flask ### 环境管理 * p:非常简单的交互式 python 版本管理工具。[官网](https://github.com/qw3rtman...

2016/06/15 18:07
964
1

没有更多内容

加载失败,请刷新页面

返回顶部
顶部