ターミナル環境を見直す: pecoからfzfへ
·2 分で読めます
コマンドの履歴やディレクトリ移動の履歴を選択するためのツールとして長らく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_cdrfunction 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件) を見る
関連記事
ターミナル環境を見直す(2) - percol編
2014-05-07
ターミナル環境を見直す(1) - zsh + prezto編
2014-05-04