これは ターミナル環境大掃除2021 の3発目です。

前回は anyenvからasdfに乗り換える です。

動機

  • 公式で Vim に対応している
    • 「対応している」という言い方が正しいかは分からないが、そもそもが実行ファイルと Vim Plugin のセットみたいな状態で配布されている
  • カスタマイズ項目が多い
    • 自分が思っていたより fuzzy matcher をよく使う人間であるということが分かったので、peco より自由度が高い fzf へ移行していく

作業

やっていくぞ。

fzf のリポジトリを見ると、GitHub Releases で実行ファイルが配布されている。つまり zplug チャンスである。

.zshrc に以下を追記する。

# fzf
zplug "junegunn/fzf", \
  from:gh-r, \
  as:command, \
  rename-to:fzf

シェルを再起動する。

( '_') < which fzf
/home/zoshigayan/.zplug/bin/fzf

入った。zplug すごい。

ということで、早速 ghq 管理下のディレクトリに移動するエイリアスを置き換えてみる。

- alias g='cd $(ghq root)/$(ghq list | peco)'
+ alias g='cd $(ghq root)/$(ghq list | fzf --reverse)'

動いた。fzf すごい。

vim や ripgrep との連携は後でやることになっているので、とりあえず history 検索を実装してみた。

incremental_search_history() {
  selected=`history -E 1 | fzf | cut -b 26-`
  BUFFER=`[ ${#selected} -gt 0 ] && echo $selected || echo $BUFFER`
  CURSOR=${#BUFFER}
  zle redisplay
}
zle -N incremental_search_history
bindkey "^R" incremental_search_history

これで ctrl + r で history に対して fzf によるファジー検索をして、選択した履歴をバッファに呼び出す…というのができるようになった。便利!

peco をアンインストールしてターンエンドである。

  • zplug を導入する
  • anyenv から asdf に乗り換える
  • peco から fzf に乗り換える
  • ripgrep を導入する
  • g エイリアスに登録されている移動コマンドをキーバインド化する
  • Dein から vim-plug に乗り換える
  • Defx から fern に乗り換える
  • ソースコード全文検索を ripgrep でできるようにする
  • ファイル名指定移動を Denite から fzf に移行する
  • Denite を消す
  • nvim-typescript 突然死の真相を探る
  • Rails 開発を便利にする何かを眺める
  • Tmux の設定を見直す
  • Zsh 初期設定を理解する
  • GitHub CLI を導入する
  • 補完について思いを馳せる

続く

次回、ripgrepを導入する