Fzfというユーティリティを見つけました https://github.com/junegunn/fzf これはシェル用のファジーファインダーです。
2つの質問:
1)fzf
を実行してファイルを実行した後、Enter
を押すと、見つけたファイルがターミナルに出力されます。 Enter
の代わりに、そのファイルパスをペーストビンにコピーするためにどのキーを押す必要がありますか?
2)理想的には、次のようなことができるようにしたいと思います:cat <pattern><hotkey>
ここで、ファイル名の一部を入力し、ホットキーを押してそのパターンのfzf検索を開始します。これを行う方法はありますか?
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
Homebrew経由でfzfをインストールしようとしましたが、CTRL-Tとpat **のショートカットも機能しませんでした。 fzfが.bashrcにいくつかのコマンドを追加したのに、.bashrcが呼び出されないことがわかりました。
[ -f ~/.fzf.bash ] && source ~/.fzf.bash
同じソースステートメントを.bashrcから.bash_aliasesに入れることで、私はうまくいきました。