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)))
repeat.el とウィンドウ幅の調整
ウィンドウ幅の調整コマンドは C-x }
, C-x {
, C-x ^
に割り当てられていて、連続的に押下するには不便なキーバインドになっている。
ネットを見るといろいろ対策はあって、インタラクティブに調整できるようなコマンドをつくったり、必要なときにキーボードマクロを定義するような回避策があった (C-x e e e ...
で連続的にコマンドを発行できる) 。
いろいろ試したけど、自分は標準ライブラリの repeat.el を使って調整するようにした。 特別楽になったというわけじゃないけど、コマンド同士をうまく連携できている感じがしてよい。
なお、オリジナルの C-x z
は C-x C-z
(suspend-frame) とかぶりやすいので、C-c .
にバインドした。Vim のドットリピートのマネである。
タイトルバーをモダンな感じにする
モダンな見た目になって大変よいです。
(when (eq window-system 'ns) (add-to-list 'default-frame-alist '(ns-transparent-titlebar . t)) (add-to-list 'default-frame-alist '(ns-appearance . dark)))
すぐに適用したい場合は *scratch*
なり M-:
なりで
(set-frame-parameter nil 'ns-transparent-titlebar t) (set-frame-parameter nil 'ns-appearance 'dark)
とするとよいと思います。