LoginSignup
16
15

More than 5 years have passed since last update.

【fpp】Facebook PathPicker を使いこなそう

Last updated at Posted at 2015-05-09

Facebookが新たにコマンドラインツールを公開しました。

fpp.gif

git statusなどのコマンドの標準出力に表示されるファイルパスに対して操作を行うツールです。
以下の様な操作ができ、使いこなせるとかなり効率が上がります。

  • git status のファイル一覧から複数選択してgit checkoutする
  • git diffのファイル一覧から選択してエディタで開く
  • findでzipファイルだけ検索し、複数選択してscpする

似たようなコマンドとして、peco, percolがありますが、fppはファイルに特化しており、自動ファイル名検出とコマンド入力モードが特徴です。

インストール

Macの場合はhomebrewでインストールできます

$ brew update
$ brew install fpp
$ fpp --help

Linuxやhomebrewのない環境などでは

$ git clone git@github.com:facebook/PathPicker.git
$ cd PathPicker
$ ln -s fpp /path/to/bin/

のようにcloneしてパスの通っているディレクトリにシムリンクを貼ればOKです。

動作環境

python > 2.6 and < 3.0 のインストールされたbash環境となっております。
zshにも対応してますが、エイリアス展開などのごく一部の機能は動作しないとのこと。
自分はzshで使っていますが特に問題は感じません。

使い方

ファイルを表示するコマンドにパイプをつなげて使います。
gitコマンドやfindコマンド、grepコマンドなどと相性がいいです。

使用例

  • git status | fpp
  • git grep 'regex' | fpp
  • git diff HEAD~3 --stat | fpp
  • fpp . -name "*.py" | fpp

ファイル選択

使用例のようにコマンド入力すると、fppは入力に対してファイルパスに相当する部分を自動検出します(図のアンダーライン部分)。1
スクリーンショット 2015-05-09 17.49.06.png

一番下のガイドにあるように操作は次のように行います。

  • f : 選択/非選択
  • A : 全選択
  • j, : 下に移動
  • k, : 上に移動
  • space : 1ページ下に移動
  • b : 1ページ上に移動
  • enter : 開く($EDITOR環境変数のエディタで開く)
  • c : コマンド入力

jkで移動しファイルを選びenterもしくはcを押します。
複数選択したい場合は、fで選んでからenterもしくはcを押します。
スクリーンショット 2015-05-09 17.56.38.png

コマンド入力

cを押した場合は更にコマンド入力画面が表示されます。
スクリーンショット_2015-05-09_18_01_44.png

選んだファイルに対して実行したいコマンドを入力するモードになります。
選んだファイルをコマンドの中で使いたいときは$Fで参照できます。

コマンド例

  • git checkout
  • git add
  • git diff
  • mkdir /tmp/test; cp $F /tmp/test/
  • cat $F | wc -l
  • scp $F server:~/backup/

その他 tips

  • fppコマンド単体で入力すると、前回の標準入力や、ファイル選択がそのまま使用されます。

  1. スペースを含むもの、拡張子がないものなどは今現在は未対応なようです。https://github.com/facebook/PathPicker/issues/7 

16
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
15