>> 古い記事: DbUnit メモ
<< 新しい記事: スキャンした書籍や書類の余白をImageMagickで除去する

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

一定時間だけ指定範囲をハイライトする Emacs Lisp

一時的に指定範囲をハイライトするちょっとした Emacs Lisp を作ってみました。 ハイライトした後、一定時間後にハイライト表示が自動的に消えます。

volatile-highlight.el ― Gist


ハイライトしたい範囲の開始ポイントと終了ポイントを指定すると 一時的に指定範囲をハイライトする。 ハイライトする時間はデフォルトは 0.1秒なので、一瞬キラっとする感じ。


;; require する
(require 'volatile-highlight)

;; 使う
(volatile-highlight 1 10) ; 開始位置、終了位置
(volatile-highlight 1 10 2) ; 開始位置、終了位置、ハイライトさせる時間(秒)

ハイライトに使っているフェイスは volatile-highlight-face で、たとえば背景色を変えたい場合は


(set-face-background 'volatile-highlight-face "#ff8")

のように指定する。

デフォルトのハイライト持続時間を変更したい場合は volatile-highlight:default-duration-sec に秒数をセットする。


(setq volatile-highlight:default-duration-sec 10)

eval-defun または eval-last-sexp して一瞬キラッとさせたい場合の例:


(require 'thingatpt) ; for beginning-of-sexp

(defadvice eval-defun
  (after blink-after-eval-defun activate)
  (let (beg end)
    (save-excursion
      (end-of-defun) (forward-char -1)
      (setq end (point))
      (beginning-of-defun)
      (setq beg (point)))
    (volatile-highlight beg end 0.2)))
(ad-activate 'eval-defun)

(defadvice eval-last-sexp
  (after blink-after-eval-last-sexp activate)
  (let (beg end)
    (save-excursion
      (setq end (point))
      (beginning-of-sexp)
      (setq beg (point)))
    (volatile-highlight beg end 0.2)))
(ad-activate 'eval-last-sexp)

追記 2011-10-26

修正しました。変更点は以下の通り。

  • 複数の箇所を同時にハイライトできるようにした
  • volatile-highlight の3番目の引数で持続時間を指定できるようにした(optional)
  • 変数名などを修正

関連記事

参考

>> 古い記事: DbUnit メモ
<< 新しい記事: スキャンした書籍や書類の余白をImageMagickで除去する
** ホームに戻る

コメント

コメントの投稿

管理者にだけ表示を許可する

|
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。