書式
functions [ -a | --all ] [ -n | --names ]

書式
functions -c OLDNAME NEWNAME

書式
functions -d DESCRIPTION FUNCTION

書式
functions [ -e | -q ] FUNCTIONS...

概要

functions コマンドは6つの動作をします。

  1. 全関数名を表示(無引数/ -n / -a)
  2. 関数定義を表示(関数名を指定)
  3. 関数定義のみをコピー(-c)
  4. 説明文の変更(-d)
  5. 関数を削除(-e)
  6. 関数の存在確認(-q)

functions コマンドのデフォルトのふるまいは、

  • 無引数だと、定義された全関数名を表示する(-n)
  • オプション以外のパラメータが与えられれば、
    指定された関数定義を表示

オプション

-a / --all
_から始まるもの含めて
定義されている全関数一覧を表示する。
-c OLDNAME NEWNAME / --copy OLDNAME NEWNAME
OLDNAME の定義を使った
NEWNAME 関数を定義する。
関数をコピーするのは関数の中身のみ。
元の関数に付いている イベント通知@function は付けない。
-d DESCRIPTION / --description=DESCRIPTION
FUNCTION の説明文を
DESCRIPTION に変更する。
関数の説明文のみを変更するのは、
1回の function -d 呼び出しでできる。
-e / --erase

指定された1つ以上の関数を削除する。

オートロード関数functions -e では削除できない。
関数定義が格納されたファイルを削除するか、
$fish_function_path 変数を変更して
オートロード関数を削除する。

-n / --names
定義されている全関数一覧を
表示する。(デフォルト)
_から始まるものは含まれない。
-q / --query
指定された1つ以上の関数が
定義されているかをテストする。
終了ステータス は存在しなかった関数の個数。

実行例

# 定義されている関数一覧を表示する
$ functions -n
., N_, abbr, alias, args, assert, assert.error_message, assert.expand_operator,
略

# 関数fooの定義を新しい関数barにコピーする
$ functions -c foo bar

# 関数barを削除する
$ functions -e bar
  Erases the function bar

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