(solved) sense-region でフェイスがおかしくなる

sense-region でフェイスがおかしくなるので調べたんですが、もうすでに解決されてましたorz

参考: sense-region.el on Emacs23でface設定が壊れないようにする - Emacs/Lisp/Drill - Emacsグループ
http://emacs.g.hatena.ne.jp/k1LoW/20090822/1250919668

でもせっかくなので自分のもメモ。

      • -

次のように .emacs の (require 'sense-region)
の後で sense-region-to-rectangle を上書きする。

(require 'sense-region)
(sense-region-on)
(defun sense-region-to-rectangle ()
  (interactive)
  (setq sense-region-status 'rectangle)

  ;; フェイスまわりのデフォルトの挙動が変なので
  ;; この2行を追加
  (copy-face mell-region-face 'sense-region-face)
  (copy-face 'region 'sense-region-region-face)

  (mell-sign-reset-face mell-region-face))

以下適当なメモ。

  • set-mark-command にアドバイスが付いていて、sense-region-toggle が呼ばれる。
  • sense-region-toggle で通常のリージョン設定と矩形選択が切り替わる。
  • 通常から矩形に切り替え → sense-region-to-rectangle
  • 矩形から通常に切り替え → sense-region-to-region
      • -

251
(defconst mell-region-face 'region)

sense-region-to-rectangle で
(copy-face mell-region-face 'sense-region-face)
して
sense-region-to-region で
(copy-face 'sense-region-face mell-region-face)
する…のかと思ったら前者がコメントアウトされている。