fzf探訪

installから

brew installしたらこんなプロンプトが
To install useful keybindings and fuzzy completion:
/opt/homebrew/opt/fzf/install

やってみたらfish_user_key_bindingsが作られた
Create /Users/h_nakagawa/.config/fish/functions/fish_user_key_bindings.fish:
function fish_user_key_bindings
fzf_key_bindings
end

試しにghr cd $(fzf)
してみたけど、.ghr/以下のあらゆるディレクトリが引っかかって使い物にならない。13万件hitしてた

Wikiみたけど解説がzshだったので、fish用のドキュメント無いかなーと思って探したらこれを発見
installしてみる。依存パッケージから。

batのsyntax highlightめっちゃ見やすい

fzf.fishをinstallする前にもうちょい詳しく見る
自前のOPTIONがなければこいつが適用されるらしい

パッケージ自体はよく使うコマンドを覚えやすいkeyにbindするだけらしい

とりあえず今回の目標は「ghq+pecoでやるようなことをghr+fzfで達成する」ですね。
つまり ghr cd ...を曖昧検索から行って、さらにそいつを適当なkeyにbindすること

例えばこれがディレクトリ検索のコマンドっぽいが...基礎が欠けてて今パッとは読めないな

key binding忘れそうなので一旦今は見送り
fdとbatは採用

ディレクトリ移動ならzとfishの補完だけで苦労無いのよね

そういえばこんな記事あったな

参考になりそう

あー、ghr list
が動かなかったので終わりかもしれん
❯ ghr list
error: The subcommand 'list' wasn't recognized
Usage: ghr <COMMAND>
For more information try '--help'
こういうのってIssueに上げたほうがいいのかな

勇気出して送ってみた。なにかきに障ることがありませんように...

どうにもならなかったらghq入れてこれかなー
これだけだったらpeco使うのと変わらないじゃんね。もうちょい探求したい。

gh周りはたしかに便利そう

同じ感じでIssueのあいまい検索からWebページにジャンプ
gh issue list | fzf | awk '{print $1}' | xargs gh issue view -w

awk '{print $1}'がうまく動かなかったのでこうした
alias issw='gh issue list | fzf | cut -f1 | xargs gh issue view -w'
alias prin='gh pr list | fzf | cut -f1 | xargs gh pr checkout'

似たような感じでPR見に行くやつもやるか
alias prvw='gh pr list | fzf | cut -f1 | xargs gh pr view -w'

ふつうにghから始まるalasのほうがいいかな

alias ghi='gh issue list | fzf | cut -f1 | xargs gh issue view -w'
alias ghp='gh pr list | fzf | cut -f1 | xargs gh pr view -w'
alias ghpc='gh pr list | fzf | cut -f1 | xargs gh pr checkout'

historyがほしかったのでfzf.fish入れた

key bindingsが覚えられそうにないので解説コマンドを用意
### see fzf.fish key bindings
22 │ alias kb='fzf_configure_bindings -h | sed -n 11,17p'
❯ kb
COMMAND | DEFAULT KEY SEQUENCE | CORRESPONDING OPTION
Search Directory | Ctrl+Alt+F (F for file) | --directory
Search Git Log | Ctrl+Alt+L (L for log) | --git_log
Search Git Status | Ctrl+Alt+S (S for status) | --git_status
Search History | Ctrl+R (R for reverse) | --history
Search Processes | Ctrl+Alt+P (P for process) | --processes
Search Variables | Ctrl+V (V for variable) | --variables

caps lockにcontrolを貼っておくとだいぶ使いやすい
preview windowをキーボードでスクロールするやり方がわからない

これも便利

ghr list
回答いただいて無事に動かせた
のでこれをやる
function fzf-repo
cd $(ghr list | fzf | awk '{print substr($0, index($0, ":")+1)}' | xargs ghr path)
commandline -f repaint
end