fishのabbrはcommandが違っても同一名で登録できない


もろもろのツールの管理を最近nixに寄せはじめた。

ついでにfishのabbrを整理したので、まとめる。

いつのまにかにfishのv4が出て、rustになっていた(rustになってv4でたのは知ってたけどちゃんと追ってなかった)。

4.0.0には色々なfeatが入ってて、Restricting abbreviationsがしれっと入ってた。

(これも入ったことは聞いてたけどちゃんと見てなかった)

zshとかだとzeno.zshが似たようなことができる(というよりこっちのが色々できるはず?)。

例えばdocker rundocker 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ならできそうな気もする。