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)))

repeat.el とウィンドウ幅の調整

ウィンドウ幅の調整コマンドは C-x }, C-x {, C-x ^ に割り当てられていて、連続的に押下するには不便なキーバインドになっている。

ネットを見るといろいろ対策はあって、インタラクティブに調整できるようなコマンドをつくったり、必要なときにキーボードマクロを定義するような回避策があった (C-x e e e ... で連続的にコマンドを発行できる) 。

いろいろ試したけど、自分は標準ライブラリの repeat.el を使って調整するようにした。 特別楽になったというわけじゃないけど、コマンド同士をうまく連携できている感じがしてよい。

なお、オリジナルの C-x zC-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)

とするとよいと思います。

f:id:ardggy:20181012133826p:plain