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ならできそうな気もする。