Hack 6. Use the Best Emacs Mode for Perl


Configure Emacs for easy Perl coding.

While perl-mode is the classic Perl-editing mode that Emacs uses for Perl files by default, most Perl programmers prefer the newer cperl-mode. (The "c" in the name is because its early versions borrowed code from c-mode. It's not actually written in C, nor meant for C.) Enabling it is easy.

The Hack

cperl-mode is probably already included in your version of Emacs, but you can get an up-to-date version from http://math.berkeley.edu/~ilya/software/emacs/. Save it to an Emacs library directory. Then enable it for .pl and .pm files by adding nine lines to your ~/.emacs file:

(load-library "cperl-mode")   (add-to-list 'auto-mode-alist '("\\\\.[Pp][LlMm][Cc]?$" . cperl-mode))   (while (let ((orig (rassoc 'perl-mode auto-mode-alist)))               (if orig (setcdr orig 'cperl-mode))))   (while (let ((orig (rassoc 'perl-mode interpreter-mode-alist)))            (if orig (setcdr orig 'cperl-mode))))   (dolist (interpreter '("perl" "perl5" "miniperl" "pugs"))     (unless (assoc interpreter interpreter-mode-alist)       (add-to-list 'interpreter-mode-alist (cons interpreter 'cperl-mode))))

What can you do with it?

Put Perldoc at your fingertips

cperl-mode provides a handy function for calling perldoc, but does not associate it with any key by default. To put it at your fingertips, add one line to your .emacs file:

(global-set-key "\\M-p" 'cperl-perldoc) ; alt-p

If you want to use Pod::Webserver [Hack #3], use one of the various in-Emacs web browsers:

(global-set-key "\\M-p" '(lambda ( ) (interactive)   (require 'w3m)   (w3m-goto-url "http://localhost:8020/") ))

If you prefer your normal web browser, just set some particular key to start it up on the Pod::Webserver page:

(global-set-key "\\M-p"   '(lambda ( ) (interactive) (start-process "" nil   "firefox" "http://localhost:8020/"   ; Or however you launch your favorite browser, like:   ;   "gnome-terminal" "-e" "lynx http://localhost:8020/"   ;   "xterm" "-e" "elinks http://localhost:8020/" )))

Use a special mode just for Pod

One problem with both cperl-mode and perl-mode is that they both treat Pod the same: they just ignore it. To get better syntax highlighting for Pod, switch to the pod-mode. It probably isn't part of your Emacs distribution, so you download the latest version from http://www.cpan.org/authors/id/S/SC/SCHWIGON/pod-mode/.

Once installed, enable it in your .emacs file with:

(require 'pod-mode) (add-to-list 'auto-mode-alist   '("\\\\.pod$" . pod-mode)) ; You might appreciate turning on these ;   features by default for Pod: (add-hook 'pod-mode-hook '(lambda ( ) (progn  (font-lock-mode)   ; =syntax highlighting  (auto-fill-mode 1) ; =wordwrap  (flyspell-mode 1)  ; =spellchecking                    )))



Perl Hacks
Perl Hacks: Tips & Tools for Programming, Debugging, and Surviving
ISBN: 0596526741
EAN: 2147483647
Year: 2004
Pages: 141

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net