Emacs Lispを書いてみた - Perlモジュール名にカーソルを合わせて M-.するとソースを開く
id:higepon:20060131:1138681298の続き。
- etagsを使おう(nanasiさん)
- xyzzyの例(http://d.hatena.ne.jp/miyamuko/20060131)
などの情報をいただきました。
というわけで id:miyamukoさんのxyzzyの例をまねして、初めて実用的なEmacs Lispを書いてみました。
;; cperl-modeでモジュール名にカーソルを合わせてM-.でソース開く (setq perl-find-module-libdir "x:/oop/lib") ; libディレクトリのPath ;; M-. (add-hook 'cperl-mode-hook (function (lambda () (define-key cperl-mode-map "\M-." 'perl-find-module) ))) (defun perl-module-to-file (libdir module) (concat libdir "/" (replace-regexp-in-string "::" "\/" module) ".pm")) (defun perl-find-module () (interactive) (let* ( (begin (save-excursion (skip-chars-backward "a-zA-Z0-9_:") (point))) (end (save-excursion (skip-chars-forward "a-zA-Z0-9_:") (point))) (module (buffer-substring begin end)) ) (message module) (find-file (perl-module-to-file perl-find-module-libdir module) ) ))
早速同僚のid:hideokiから、libディレクトリは複数指定したいね。
と言われたのですがそろそろギブです。
追記:ただいま改良中(perldocを使おう)