PathPickerbash 中的文件查看器
PathPicker
Facebook PathPicker是一個簡單的命令行工具,它解決了從bash輸出中選擇文件的永久性問題.PathPicker將:
解析所有傳入行以查找看起來像文件的條目
在方便的選擇器的用戶界面中呈現(xiàn)管道輸入
允許您:
編輯您喜歡的所選文件
$EDITOR用它們執(zhí)行任意命令
通過觀看簡單的演示最容易理解:
例子
安裝PathPicker后,使用它就像管道一樣簡單fpp。它需要各種各樣的輸入 - 嘗試以下所有選項(xiàng):
git status | fpphg status | fppgit grep "FooBar" | fppgrep -r "FooBar" . | fppgit diff HEAD~1 --stat | fppfind . -iname "*.js" | fpparc inlines | fpp
還有你能想到的任何其他東西!
要求
PathPicker需要Python> 2.6或> 3.0。
支持的殼:
擊完全支持并且效果最好。
ZSH也受支持,但在命令行模式下不會有像別名擴(kuò)展這樣的功能。
最新版本支持csh / fish / rc,但在舊版本的PathPicker中可能存在怪癖或問題。但請注意,如果您的默認(rèn)shell和當(dāng)前shell不在同一系列中(bash / zsh ... vs fish / rc) ,需要則手動將環(huán)境變量導(dǎo)出
$SHELL到當(dāng)前的外殼。
安裝PathPicker
家釀
使用Homebrew for mac安裝PathPicker最簡單:
brew update(因?yàn)樗切碌?,所以下拉配方?/p>brew install fpp
Linux的的
在Debian的系統(tǒng)上,通過可以從這里安裝Debian的軟件包來完成安裝要在本地構(gòu)建包,請運(yùn)行以下步驟:
$ 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包。
如果您使用的是其他系統(tǒng),或者更喜歡手動安裝,請按照以下說明操作。
手動安裝
但是,如果您使用的是沒有自制的系統(tǒng),那么安裝PathPicker仍然非常容易,因?yàn)樗鼘?shí)際上只是一個調(diào)用的Python的bash的腳本這些步驟或多或少概述了流程:
cd /usr/local/ # or wherever you install apps git clone https://github.com/facebook/PathPicker.git cd PathPicker/
在這里,我們從回購中的的bash腳本創(chuàng)建一個符號鏈接,/usr/local/bin/假設(shè)它在當(dāng)前 $PATH
ln -s "$(pwd)/fpp" /usr/local/bin/fpp fpp --help # should work!
附加組件
對于tmux用戶,您可以另外安裝tmux-fpp添加密鑰組合以在最后收到的路徑上運(yùn)行PathPicker stdout。它使得跳轉(zhuǎn)到文件選擇模式變得更加容易 - 請?jiān)诖颂幉榭?/a>。
高級功能
如上所述,PathPicker允許您還使用指定的文件執(zhí)行任意命令以下是顯示。git checkout針對所選文件執(zhí)行的命令的示例:
所選文件將附加到命令前綴以形成最終命令如果您需要命令中間的文件,則可以使用。$F令牌,例如:
cat $F | wc -l
另一個重要的注意事項(xiàng)是PathPicker默認(rèn)只選擇文件系統(tǒng)上存在的文件。如果您想跳過此(可能是選定的已刪除文件git status),只需使用--no-file-checks(或-nfc簡稱)標(biāo)志運(yùn)行PathPicker。
PathPicker的工作原理
PathPicker是的bash腳本和一些小型的Python模塊的組合它基本上有三個步驟:
首先,bash的腳本將所有標(biāo)準(zhǔn)重定向到蟒模塊,該模塊解析并提取文件名候選。這些候選詞是用一系列正則表達(dá)式提取的,因?yàn)镻athPicker的輸入可以是來自另一個程序的任何標(biāo)準(zhǔn)輸出。我們不是為每個程序制作專門的解析器,而是將所有內(nèi)容視為嘈雜的輸入,并通過正則表達(dá)式選擇候選者。為了限制對文件系統(tǒng)的調(diào)用次數(shù)(檢查存在),我們對我們提取的候選者有相當(dāng)?shù)南拗啤?/p>
這樣做的缺點(diǎn)是,沒有擴(kuò)展名(如test)的單個單詞的文件將無法匹配。這是PathPicker的已知限制,意味著它有時無法在輸入中找到有效文件。
接下來,
curses向用戶呈現(xiàn)構(gòu)建的選擇器UI。在這里,您可以選擇一些文件進(jìn)行編輯或輸入要執(zhí)行的命令。最后,蟒蛇腳本將命令輸出到bash的文件,該文件稍后由原始的bash腳本執(zhí)行。
它不是世界上最優(yōu)雅的建筑,但(我們認(rèn)為)提供了很多實(shí)用性。
文檔和配置
有關(guān)所有文檔和配置選項(xiàng),請參閱輸出fpp --help。


