hl-anything 20160422.1008(in MELPA)
Highlight symbols, selections, enclosing parens and more.

概要

hl-anything.el は、シンボルやregionを色付けします。

<2015-01-10 Sat> end-of-bufferのエラーが本家で修正されました!

ただこれだけの説明だと標準添付の hl-lock.el が提供する
M-x highlight-regexp とあまり変わりないように感じます。

しかし、hl-anything.elは以下の点で勝っています。

  • シンボルを認識してハイライトする
  • regionが指定しているときはregionをハイライトする
  • 全バッファにハイライトを設定できる!
  • ハイライト情報をEmacs再起動時に復元できる!

なお、<2014-12-28 Sun>においていくつか
バグがあるので手元で修正しました。

  • symbolの認識が甘いので正規表現を \_<〜\_> で囲んだ
  • end-of-bufferのエラー <2015-01-10 Sat>修正
  • regionを指定したときにハイライトを設定したらregionが残ったまま

なお、名前とはうらはらにanything.elとは何の関係もありません(笑)

色の設定はM-x customize-group hl-anythingでできます。

インストール

パッケージシステムを初めて使う人は
以下の設定を ~/.emacs.d/init.el の
先頭に加えてください。

(package-initialize)
(setq package-archives
      '(("gnu" . "http://elpa.gnu.org/packages/")
        ("melpa" . "http://melpa.org/packages/")
        ("org" . "http://orgmode.org/elpa/")))

初めてhl-anythingを使う方は
以下のコマンドを実行します。

M-x package-install hl-anything

アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。

M-x package-install package-utils (初めてアップグレードする場合のみ)
M-x package-utils-upgrade-by-name hl-anything

設定 141228045535.hl-anything.el(以下のコードと同一)

(require 'cl-lib)
(defun hl-thingatpt--symbol-regexp (&rest them)
  "せっかく (bounds-of-thing-at-point 'symbol) してるんだから
\\_<〜\\_>で囲もうぜ?"
  (if (use-region-p)
      (apply them)
    (cl-destructuring-bind (regexp &rest rest)
        (apply them)
      `(,(format "\\_<%s\\_>" regexp) ,@rest))))
(advice-add 'hl-thingatpt :around 'hl-thingatpt--symbol-regexp)

;;; regionを指定したときに解除されないのを修正
(advice-add 'hl-highlight-thingatpt-local :after 'deactivate-mark)
(advice-add 'hl-highlight-thingatpt-global :after 'deactivate-mark)

;;; ハイライト情報を保存・復元
(add-hook 'find-file-hook 'hl-restore-highlights)
(add-hook 'kill-emacs-hook 'hl-save-highlights)

実行方法

$ wget http://rubikitch.com/f/141228045535.hl-anything.el
$ emacs -Q -f package-initialize -l 141228045535.hl-anything.el

使い方

M-x hl-highlight-thingatpt-local
カレントバッファを色付け・色消し
M-x hl-highlight-thingatpt-global
全バッファを色付け・色消し
M-x hl-unhighlight-all-local
カレントバッファをすべて色消し
M-x hl-unhighlight-all-global
全バッファをすべて色消し

一番よく使うコマンドはM-x hl-highlight-thingatpt-localです。

regionが指定されているときはそのregionを、
そうでないときは現在のシンボルを色付けします。

トグルになっているので、色付けしている場合は色消しします。

「-global」とついているコマンドは全バッファに適用します。

M-x hl-find-thing-forwardly
M-x hl-find-thing-backwardly
は、現在のシンボルの文字列を検索しますが、
シンボルそのものを探すわけでもないし、
ハイライトされている文字列を移動するわけでもありません。

helm-swoop.el(大々的レビュー記事) の前には児戯に等しいです(笑)

20141228055052.png
Fig1: ハイライト!

本サイト内の関連パッケージ


本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。