emacsでカーソル位置のシンボルをハイライトする


eclipseだとカーソル位置のシンボルをハイライトできるのが地味に便利だったので、emacsでできないかと探したところ
まさにこれ、というのが見つかりました。

auto-highlight-symbol-mode
https://github.com/mitsuo-saito/auto-highlight-symbol-mode


install

auto-install-from-urlでインストールしました

M-x auto-install-from-url https://raw.github.com/mitsuo-saito/auto-highlight-symbol-mode/master/auto-highlight-symbol.el

設定

コメントにあるとおりに~/emacs.d/init.elに設定しました

(require 'auto-highlight-symbol)
(global-auto-highlight-symbol-mode t)

使い方

上記の設定をするだけで、カーソル位置のシンボルがハイライトされるようになります
すばらしく使い勝手がよいです。

キー function 機能
M- ahs-backward 前のシンボルへ移動
M- ahs-forward 次のシンボルへ移動
M-s- ahs-backward-difinition ?
M-s- ahs-forward-definition ?
M-- ahs-back-to-start 最初のカーソル位置のシンボルへ移動
C-x C-' ahs-change-range ハイライトする範囲を表示しているディスプレイの範囲かバッファ全体かを切り替える
C-x C-a ahs-edit-mode ハイライトしているシンボルを一括でrenameする

ahs-edit-modeがとても便利に使えそうです。eclipseでいうrefactoring->renameですね。
ハイライトしている範囲しかrenameできませんが。
ファイルをまたいで一括で置換したいときは、moccur-editを使います。

参考)
http://d.hatena.ne.jp/higepon/20061226/1167098839


あと、ahs-backward-definitionとahs-forward-definitionがよくわからない。

カスタマイズ

ハイライトするまでの時間を変更してみました。デフォルトは1秒です。

(ahs-set-idle-interval 0.8)