fzfを使って、コマンド履歴をインクメンタル検索して、特定のコマンドをコピーする

1 min read読了の目安(約1000字

初投稿!

やりたいこと

こんな感じで、コマンド履歴をインクリメンタル検索して、特定のコマンドをコピーができるようにする

やり方

前提

  • mac 環境
  • fish, fisher を利用するので、install が必要(install についての説明は省略します)

手順

  1. fisher add jethrokuan/fzf
  2. cd ~/.config/fish/functions/
  3. ls すると__fzf_*.fish のファイルたくさんあるはず
  4. 以下実行
> echo 'function __fzf_reverse_isearch_with_copy
      history merge
      history -z | eval (__fzfcmd) --read0 --tiebreak=index --toggle-sort=ctrl-r $FZF_DEFAULT_OPTS $FZF_REVERSE_ISEARCH_OPTS -q \'(commandline)\' | perl -pe \'chomp if eof\' | read -lz result
      and commandline -- ""
      commandline -f repaint
      echo -n $result | pbcopy
  end' > __fzf_reverse_isearch_with_copy.fish
  1. ./__fzf_reverse_isearch_with_copy.fish するとすぐに使えるはず

僕はconfig.fishbind \cy __fzf_reverse_isearch_with_copyを書いて、CTRL + Yで呼び出せるようにしてます(exec $SHELL -lを忘れずに)

以上!!


他にもこんなことできるよ!みたいなのあれば教えてもらえると嬉しいです!
これからも気楽に投稿していきます!