fzf
インストール方法
Homebrew or Linuxbrew が楽だけどGo製のツールなので git で clone 後にインストールスクリプトを叩いたほうが楽 使い方
キーバインド
Key bindings を有効にすると下記のキーバインドが追加される
Ctrl-R でコマンド履歴貼り付け
Ctrl+T でファイル検索してコマンドに追加
Alt+C 指定したディレクトリにcdする
プレビュー
引数に --preview [command] とするとプレビューウィンドウが追加され、commandに渡した結果を表示
commandは 'head -100 {}' というように {} を渡すと選択中の文字列を渡す
コードハイライトをしてくれる bat が良さそう。 画像プレビューがしたい場合は、MacであればiTerm2のshell integrationにある imgcat が良さそう。 補完モード
例: vim **<TAB>
適当なディレクトリパスのあとに**<TAB> を打つと補完できる
補完のキッカケの文字列は環境変数で切り替えられる
環境変数
FZF_DEFAULT_COMMAND
fzf起動時のデフォルトコマンド
未指定時はfind
例えばripgrepにすると .gitignore に定義されたファイルを無視できるなどカスタマイズの起点
FZF_CTRL_T_COMMAND
ファイルでフィルタするキーバインドCtrl+Tのコマンドをカスタマイズ
FZF_TMUX_HEIGHT
tmuxで利用するときの高さ指定
FZF_HEIGHT
通常の高さ指定
カスタマイズ例
export FZF_DEFAULT_COMMAND='rg --files --hidden --follow --glob "!.git/*"'
export FZF_CTRL_T_COMMAND=$FZF_DEFAULT_COMMAND
export FZF_CTRL_T_OPTS='--preview "bat --color=always --style=header,grid --line-range :100 {}"'
ghq と組み合わせるとREADMEを見ながらリポジトリ切り替えできる
alias gcd='ghq look ghq list | fzf --preview "bat --color=always --style=header,grid --line-range :100 $(ghq root)/{}/README.*"'