block - イベントの配信を一時的にブロックする

概要

block [(--local | --global)]
block --erase

説明

block は、 fishemit によってトリガーされるすべてのイベントの配信を遅延させます。これにより、 --on-event--on-process-exit--on-job-exit--on-variable--on-signal を使用して登録された関数の実行を、ブロックが解除されるまで遅らせることができます。

イベントのブロック(block)を、 beginifwhilefor で作成されるコードブロックと混同しないようにしてください。

オプションなしで実行した場合、 block は現在の関数スコープの終了時に自動的に解除されるブロックを設定します。

以下のオプションが利用可能です:

-l--local

現在の一番内側のコードブロック・スコープが終了した時点で、自動的にブロックを解除します。

-g--global

ブロックを自動的に解除しません。

-e--erase

グローバルなブロックを解除します。

-h--help

このコマンドの使用方法に関するヘルプを表示します。

# Create a function that listens for events
function --on-event foo foo; echo 'foo fired'; end

# Block the delivery of events
block -g

emit foo
# No output will be produced

block -e
# 'foo fired' will now be printed

Notes

ある fish プロセスから別のプロセスへイベントを送信する方法はないため、イベントは現在の fish プロセスからのみ受信されます。