プログラム系統備忘録ブログ

記事中のコードは自己責任の下でご自由にどうぞ。

EmacsでURLをハイライトで強調表示する&URLをダブルクリックで開く

TeraPadにあるような、URLが別の色で表示されたり、URLダブルクリックでブラウザで開く機能が欲しかったのでメモ。
Windows7、gnupack_devel-9.01のEmacs 24.1.1で確認。
browse-url-at-pointとbrowse-url-at-mouseの内部で使われるURL判別正規表現を使っているので、ハイライトされているままにブラウザで開かれます。

;; URLをハイライトで強調表示
(require 'thingatpt)
(global-hi-lock-mode 1)
(add-hook 'find-file-hook
		  '(lambda()(highlight-regexp thing-at-point-url-regexp "hi-blue")))
;; URLをブラウザで開くキーバインド
(global-set-key "\C-c\C-j" 'browse-url-at-point)
(global-set-key [double-mouse-1] 'browse-url-at-mouse)

問題点

  • find-file-hookはファイルが開かれた時のみ実行される。*scratch*バッファや新規作成したバッファでは適応されない。(どんなバッファでも作られるときに呼ばれるフックが欲しい。)
  • URLの後ろに全角スペースがあってもURLの区切り文字と認識されない。例えば「http://example.com/ ←ここに全角スペース」の場合、カギ括弧内全てがURLと認識される。2012/10/20 この記事で解決方法を書きました。
  • バッファ編集時にリアルタイムでハイライトが更新されない場合がある。C-xC-vなどで開き直すと更新される。(M-x hilight-regexpで設定した語句はリアルタイムで更新される。)