空enterでlsを実行するプラグインを作った
顛末
空 Enter で ls が実行されると便利
みたいな話をよく聞くので fish
でも同じようなことができないかと思って調べたら zsh
にはプラグインとしてあるみたい。
Qiita にfishshell で Enter 押したときに ls と git status を表示する - Qiitaがある。
この記事では <c-j>
にバインドしているが、コマンドの実行のイベントで空なら分岐の方式にしたかったので調べてみた。
どうやら空のコマンドを実行したときには --on-event <pre|post>exec
が発行されないように新しいバージョンで変わったらしい。
fish_preexec is no longer triggered on empty commands, no way to restore old behavior #8020
個人的に Enter
にバインドするものは今後増える可能性があると思ってるのでバインドしたくはなかった。
function fish_user_key_bindings
bind \r emptyls
end
ここで地味に詰まった。
最初は bind \r
ではなくて bind -k enter
にしていたが、enterには割当がない
みたいなエラーが出た。