- hl-anything 20160422.1008(in MELPA)
- Highlight symbols, selections, enclosing parens and more.
概要
hl-anything.el は、シンボルやregionを色付けします。
ただこれだけの説明だと標準添付の hl-lock.el が提供する
M-x highlight-regexp とあまり変わりないように感じます。
しかし、hl-anything.elは以下の点で勝っています。
- シンボルを認識してハイライトする
- regionが指定しているときはregionをハイライトする
- 全バッファにハイライトを設定できる!
- ハイライト情報をEmacs再起動時に復元できる!
なお、
バグがあるので手元で修正しました。
- symbolの認識が甘いので正規表現を \_<〜\_> で囲んだ
end-of-bufferのエラー修正
- 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(大々的レビュー記事) の前には児戯に等しいです(笑)
Fig1: ハイライト!
本サイト内の関連パッケージ
- highlight-symbol - automatic and manual symbol highlighting
- hl-todo - highlight TODO and similar keywords
- helm-swoop - Efficiently hopping squeezed lines powered by helm interface
本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。