fishの abbrは commandが 違っても 同一名で 登録できない
もろもろのツールの管理を最近nixに寄せはじめた。
ついでにfishのabbrを整理したので、まとめる。
いつのまにかにfishのv4が出て、rustになっていた(rustになってv4でたのは知ってたけどちゃんと追ってなかった)。
4.0.0には色々なfeatが入ってて、Restricting abbreviationsがしれっと入ってた。
(これも入ったことは聞いてたけどちゃんと見てなかった)
zshとかだとzeno.zsh
が似たようなことができる(というよりこっちのが色々できるはず?)。
例えばdocker run
をdocker container run
にexpandできる。
いままでのfishだとrun
を何かにexpandすることはできたが、“docker
のあとのrun
だけexpandする”のような条件をつけられなかった。
なので、docker ~~~~
系をexpandするプラグインを生やした。
Omochice/docker-abbreviations.fish: Docker abbreviations for fish-shell
docker --help
出てきたコマンドを片っ端から並べただけの力技プラグイン。
入っているdockerのバージョンとかを考慮していないオレオレプラグインだけど、ここに供養する。
ついでに調べた知見だが、--command
が別でも複数は登録できないようだ。
なので以下をやっても後者が使われるようだ。
$ fish -v
fish, version 4.0.1
$ abbr --command foo bar baz bar
$ abbr --command hoge bar piyo bar
$ foo bar<Space>
# 展開されない
$ hoge bar<Space>
# hoge piyo barになる
zenoならできそうな気もする。