fish shellで空enterを入力したらlsを実行するようにする
ちょっとした効率化で"空enterでlsを実行する"をよいという話を聞くのでfishで実装しようとした。
(zshだとプラグインであるみたい)
できたもの
function enter_ls
set -l cmd (commandline)
if test -z "$cmd"
echo
ls
end
commandline -f execute
end
function fish_user_key_binding
bind \r enter_ls
end
これを~/.config/fish/function/
下に置くと\r
(enter)がenter_ls
の実行になる。
最初は function enter_ls --on-event fish_postexec
で書こうと考えたが、バージョンが上がって空コマンドだとこのイベントが発行されないようになっていた。
個人的にenterにバインドするのはあまり気持ちよくない(他のenterで実行されるものと被ると面倒)けどもイベントが無いならこれしか実現法は無いような気がする。