zap-to-char
¶search-forward と progn
の仕組みを確認したところで、zap-to-char
関数全体がどのようにして動作するのかを見ていきましょう。
kill-region の第1引数は、zap-to-char コマンドが実行された際のカーソル位置――つまりその時点での point
の値です。progn 内では、検索関数が point を zapped-to-character
の直後まで移動させ、point がこの位置の値を返します。kill-region 関数は、これら2つの point
の値(1つ目をリージョンの開始位置、2つ目を終了位置として)を組み合わせ、リージョンを削除します。
progn という特殊形式が必要なのは、kill-region コマンドが2つの引数を取るためであり、search-forward と point
の式をさらに2つの引数として連続して記述するとエラーになるためです。progn 式は kill-region への単一の引数であり、kill-region が第2引数として必要とする1つの値を返します。