書式
abbr --add word phrase...

書式
abbr --show

書式
abbr --list

書式
abbr --erase word

概要

abbr コマンドは
fishが展開する 短縮名 を管理します。

短縮名とは、
ユーザ定義の文字列か単語で、
入力後に長い文字列に置換されるものです。

(訳注:短縮名は他のシェルにおける
別名定義(エイリアス)に相当します。)

たとえば、 git checkout
頻繁に実行するならば
gco という短縮名を付けられます

gco と入力した後にスペースかEnterを押すと、
コマンドラインに本来の git checkout が出てきます。

短縮名は
変数 fish_user_abbreviations
格納されます。

これは最初に短縮名が定義されたときに
自動的に ユニバーサル変数 として作成されます。

短縮名を特定のfishセッション固有にして
他のセッションに波及させたくないときは、

最初の短縮名を定義する前に以下の設定を
~/.config/fish/fish.config
に加えてください。

if status --is-interactive
    set -g fish_user_abbreviations
    abbr --add first 'echo my first abbreviation'
    abbr --add second 'echo my second abbreviation'
    ...
end

短縮名はコマンドラインから
直接作成できます。

fish_user_abbreviations
ユニバーサル変数であるならば、

短縮名は自動的に保存され、
他のfishセッションからも
使えるようになります。

fish_user_abbreviations
ユニバーサル変数のままにしておくならば、
abbr --add を config.fish に書くと
起動時間が遅くなるだけです。

オプション

以下のパラメータが使えます。

-a WORD PHRASE / --add WORD PHRASE
WORDPHRASE に展開する
新しい短縮名を定義する。
-s / --show
すべての短縮名と展開後の文字列を
実行可能な形で出力する。
-l / --list
すべての短縮名を出力する。
-e WORD / --erase WORD
短縮名 WORD を削除する。

注意:
fish 2.1から abbr -a WORD=PHRASE
書式をサポートしました。

今でも使うことができますが非推奨です。

実行例

gcogit checkout に置換させます。

abbr -a gco git checkout

短縮名 gco を削除します。

abbr -e gco

another_host で定義された
全短縮名をSSH経由でインポートします。

ssh another_host abbr -s | source

補足

短縮名は alias コマンドによる
別名 とは異なります。

alias はあくまでも
function コマンドによる
関数定義のラッパーです。

fishにおいて
別名と関数名は同列のものであり、
区別はできません。

短縮名はコマンド
(ビルトイン、関数、外部コマンド)
に展開されるため、
他のシェルにおける別名に相当します。

fishの短縮名は
それをさらに推し進めて、
入力後にコマンドライン上で
見た目としてフィードバックされます。

履歴にも
展開後の文字列が登録されます。

つまり、
入力の省力化にそのまま貢献します。

ただし、短縮名は
コマンドを受け付ける位置でのみ
展開されます。

文字列リテラル中などでは
展開されません。

上記の例では
gco という短縮名を定義しましたが、
echo gco は gco と表示されます。

最後までお読みいただき、ありがとうございました。参考になれば嬉しいです。