ardggy's blog

Esc - Meta - Alt - Ctrl - Shift

view-mode とディレクトリ変数

プロジェクトルートに、下の内容の .dir-locals.el を入れておく。 すると、プロジェクト下のファイルを開いたときに view-mode になっている。

ライブラリとかカーネルとかを読むときはありがたい。

((nil . ((eval . (view-mode 1)))))

find-file-hook にひっかけるという手もあるけど、なんでもかんでも view-mode になるのはちょっと煩わしい。

標準拡張は view-mode で読みたい

find-library とか describe-function でライブラリのファイルに飛ぶときに、view-mode になっているといいなあと思って設定した。

地味にありがたい存在。

(add-hook 'find-function-after-hook 'view-mode-when-el)
(add-hook 'xref-after-jump-hook 'view-mode-when-el)

(defun view-mode-when-el ()
  (when (or (string-suffix-p ".el.gz" (buffer-file-name))
            (string-suffix-p ".el" (buffer-file-name)))
    (view-mode 1)))

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