ardggy's blog

Esc - Meta - Alt - Ctrl - Shift

scheme-send-last-sexp

直前の式を評価するコマンドで、おなじみ C-x C-e にバインドされている。

cmuscheme.el の定義を読んだら、単にプロセスに対してリージョンを送るというものだった。 save-excursion 内で一時的に前のS式に戻って、戻ったところの位置をリージョン開始にしている。なるほど。

;;; cmuscheme.el
(defun scheme-send-last-sexp ()
  "Send the previous sexp to the inferior Scheme process."
  (interactive)
  (scheme-send-region
    (save-excursion (backward-sexp) (point))  ;; 戻ったところのポイントをリージョン開始位置とする
    (point)))