コマンドの履歴やディレクトリ移動の履歴を選択するためのツールとして長らくpecoを使ってきたけど、fzfに移行してみた。理由は大したものではなく
- pecoはshellで複数行のコマンドを検索して実行する場合に、
\
が\\
と2重になってしまうという問題があった - 日本国外だとpecoではなくてfzfの方が使われていそう
というもの。
インストール
リポジトリのREADMEに書いてあるので省略
設定
cdr
ディレクトリの移動履歴をfzfで検索するようにする。zshの設定は以下のような感じ。
function fzf_cdr () { local selected_dir=$(cdr -l | awk '{ print $2 }' | fzf --query "$LBUFFER") if [ -n "$selected_dir" ]; then BUFFER="cd ${selected_dir}" zle accept-line fi zle clear-screen } zle -N fzf_cdr bindkey "^@" fzf_cdr
function fzf_select_history() { local tac exists gtac && tac="gtac" || { exists tac && tac="tac" || { tac="tail -r" } } BUFFER=$(fc -l -n 1 | eval $tac | peco --query "$LBUFFER") CURSOR=$#BUFFER # move cursor zle -R -c # refresh } zle -N fzf_select_history bindkey '^R' fzf_select_history
感想
pecoはshellで複数行のコマンドを検索して実行する場合に、
\
が\\
と2重になってしまうという問題があった
この問題が解決されたので自分としてはこれだけでも満足度が高い。また、fzfは環境変数で見た目や挙動を変えられるのが良いと思っている。自分は以下のように設定している。
export FZF_DEFAULT_COMMAND='rg --files --hidden --glob "!.git"' export FZF_DEFAULT_OPTS='--height 60% --border'
- 作者: 中島能和
- 出版社/メーカー: 翔泳社
- 発売日: 2008/12/04
- メディア: 単行本(ソフトカバー)
- 購入: 7人 クリック: 175回
- この商品を含むブログ (50件) を見る