新調した Mac mini の開発環境を整えていたら、どうも percol が動作してくれない。Python3 ではうまく動かないらしい。 直そうと思って調べてみるとどうやら peco や fzf の方がナウいらしいので移行することにした。 tmux の相性がいいとのことなので fzf を入れることにする。

percol のアンインストール

大抵の人は pip でインストールしているはず。

1
2
3
4
$ pip uninstall -y "percol==0.2.1"

# percol 以外のパッケージも全部消していい場合
$ pip freeze | xargs pip uninstall -y

設定ファイルを削除する。

1
$ rm -rf ~/.percol.d

.zshrc などに設定があれば削除する。

1
$ vim ~/.zshrc

fzf のインストール

brew で入れるだけ。

1
$ brew install fzf

設定ファイル

素直に ~/.zshrc に関数を追加していくと肥大化するので ~/.zsh/functions/ 配下に関数毎にファイルを作って、それらを読み込むようにした。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
$ tree ~/.zsh/functions
~/.zsh/functions
├── cdf
├── fd
├── fh
├── fkill
├── frepo
├── fshow
└── fssh

0 directories, 7 files

各ファイルの中身

~/.zshrc で autoload と bindkey の設定をする。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
fpath=(~/.zsh/functions ${fpath})

# autoload fzf functions
for widget_name in ~/.zsh/functions/*; do
  local function_name="${widget_name:t}"
  zle -N "${function_name}"
  autoload -Uz "${function_name}"
done

bindkey -e     # emacs-like
bindkey '^r'   fh
bindkey '^xf'  cdf
bindkey '^xd'  fd
bindkey '^xk'  fkill
bindkey '^xp'  frepo
bindkey '^xgs' fshow
bindkey '^xs'  fssh

これで快適な CLI ライフが送れるようになった。

参考