2017-07-06 10 views
2

fzf rocks!私はbashの履歴を検索するためにそれを使用したい。一致が見つかったら、コマンドラインに置いてもらいたいが、ではないので、さらに編集することができる。 (これはすべてソースbash関数またはスクリプトに入っているので、履歴にアクセスできます)。ターミナルでfzfの出力を実行せずに出力します

私はそれがほとんど機能していますが、それほどではありません。

このコマンドを選択するが、すぐにそれを実行します:

eval $(history | "$HOME/bin/fzf" +s | sed 's/ *[0-9]* *//') 

これは私のクリップボードにそれを取得しますが、私はそれを貼り付けるとき、それはすぐに実行されるので、それはまだ空白や改行で終わります。

history | "$HOME/bin/fzf" +s | sed 's/ *[0-9]* *//' | xclip -se c 

私も同じ結果と

history | "$HOME/bin/fzf" +s | sed -e 's/ *[0-9]* *//' -e 's/$//' | xclip -se c 

含むバリエーションのカップルを試みました。

これは実際には機能しますが、クリップボードに入れて手動で貼り付ける必要があります。

history | "$HOME/bin/fzf" +s | sed -re 's/ *[0-9]* *//' | awk '{printf "%s", $0}' | xclip -se c 

これを手動で貼り付けなくても1つの手順で行うことはできますか?

私はxclipから離れると思っていましたが、動作しません。

+0

これに逆の検索を使用しない理由はありますか(Ctrlとr)? –

+0

私はそれを使うのに慣れていません。私はちょうどそれを試みた。 fzfはもっと良いです。一度に複数の選択肢を見ることができます。そして、私が見つけたものを編集する方法は見当たりませんでした。私がEnterを押すと、変更されていないコマンドが実行されただけです。また、これを理解することができれば、コマンドライン上で自動的に作業を開始する可能性もあります。 – Joe

+1

Ctrl-rを複数回押すと、入力したテキストに関連するさまざまなオプションを表示できます。次に、エスケープを押して、編集するコマンドラインでコマンドを取得することができます。私は時間を費やす前に既に利用可能なオプションを検討して自分自身を設計しようと思っています –

答えて

0

ジュングンンはすでにこの問題を解決してくれたようです。 In this file彼はbash ctrl-rをあなたの後の機能とまったく同じものに置き換えます。私はsh: ``fzf-file-widget': not a valid identifierを出力しているfzf-file-widgetという行のために、このファイルを調達するという小さな問題を抱えていましたが、それをfzf_file_widgetのために変更した後にはうまくいきます。

関連する問題