web-dev-qa-db-ja.com

bashを使用してMacターミナルでfzfを使用する方法

Fzfというユーティリティを見つけました https://github.com/junegunn/fzf これはシェル用のファジーファインダーです。

2つの質問:

1)fzfを実行してファイルを実行した後、Enterを押すと、見つけたファイルがターミナルに出力されます。 Enterの代わりに、そのファイルパスをペーストビンにコピーするためにどのキーを押す必要がありますか?

2)理想的には、次のようなことができるようにしたいと思います:cat <pattern><hotkey>ここで、ファイル名の一部を入力し、ホットキーを押してそのパターンのfzf検索を開始します。これを行う方法はありますか?

8
mark

READMEページ をお読みになることをお勧めします。 fzfを十分に活用するには、シェルスクリプトの基本的なレベルの理解が必要です。

fzfはgrepやsedと同じUnixフィルターであり、選択した項目を出力するだけです。出力をどうするかは完全にあなた次第です。


1)fzfを実行してファイルを実行した後、Enterキーを押すと、見つかったファイルがターミナルに出力されます。 Enterの代わりに、そのファイルパスをペーストビンにコピーするためにどのキーを押す必要がありますか?

pbcopyコマンドを使用して、次のように結果をクリップボードに保存できます。

fzf | pbcopy

Fzfを使用するより一般的な方法は、コマンド置換で使用することです。

cat $(fzf)

または、選択したファイルの名前をコマンドラインに貼り付けるCTRL-Tキーバインディングを使用するには:

cat <CTRL-T>

2)理想的には、次のようなことができるようにしたいと思います。catファイル名の一部を入力し、ホットキーを押してそのパターンのfzf検索を開始します。これを行う方法はありますか?

fzfには、bash用のfuzzy-completionが付属しています。詳細については、 ここ を参照してください。オートコンプリートを呼び出すには、パターンに2つのアスタリスクを追加し、次のようにTabキーを押します。

cat pat**<Tab>

Bashを使用しない場合、最も近い方法は、上記のCTRL-Tキーバインドを使用することです。

参照: https://github.com/junegunn/fzf#key-bindings-for-command-line

7
Junegunn Choi

Homebrew経由でfzfをインストールしようとしましたが、CTRL-Tとpat **のショートカットも機能しませんでした。 fzfが.bashrcにいくつかのコマンドを追加したのに、.bashrcが呼び出されないことがわかりました。

[ -f ~/.fzf.bash ] && source ~/.fzf.bash

同じソースステートメントを.bashrcから.bash_aliasesに入れることで、私はうまくいきました。

2
rado