Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine

Re: Desparately seeking a bilingual vim/Emacs expert

by polettix (Vicar)
on Apr 05, 2005 at 10:23 UTC ( #444921=note: print w/replies, xml ) Need Help??

in reply to Desparately seeking a bilingual vim/Emacs expert

At the risk of being slightly off-topic, I would also share my 2c Emacs tip with you. I've put this hook to call perltidy (pressing F6) in my .emacs:
(defun my-cperl-hook () "What to run when cperl-mode is turned on" ;; Function to call perltidy (defun perltidy-whole-buffer () "Filter the current buffer through perltidy" (interactive) (shell-command-on-region (point-min) (point-max) "perltidy -st" nil 1 shell-command-default-error-buffer ) ) ;; Bind key (define-key cperl-mode-map [f6] 'perltidy-whole-buffer) )
The hook has to be added to the correct customisation variable as well:
(custom-set-variables ;; custom-set-variables was added by Custom -- don't edit or cut/pas +te it! ;; Your init file should contain only one such instance. ;; ... '(cperl-mode-hook (quote (my-cperl-hook))) )
Of course, s/cperl/perl/g if you don't want to use cperl.

Flavio (perl -e "print(scalar(reverse('ti.xittelop@oivalf')))")

Don't fool yourself.

Replies are listed 'Best First'.
Re^2: Desparately seeking a bilingual vim/Emacs expert
by diotalevi (Canon) on Nov 23, 2005 at 03:43 UTC

    The following snippet steals the regular C-x C-s to automatically perltidy as well. I added a different definition for perltidy-whole-buffer so that the input point is restored to be somewhere near where it was originally. I also added a check to see if the buffer has been modifed before calling out to perltidy.

    (add-to-list 'cperl-mode-hook (lambda () (substitute-key-definition 's +ave-buffer 'cperl-save-buffer cperl-mode-map global-map))) (defun cperl-save-buffer (&optional args) (interactive "p") (if (buffer-modified-p) (perltidy-buffer)) (save-buffer t)) (defun perltidy-buffer () (interactive) (let ((orig-point (point))) (shell-command-on-region (point-min) (point-max) "perltidy -st" nil t shell-command-default-error-buffer) (goto-char (if (<= orig-point (point-max)) orig-point (point-max)))))

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://444921]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (4)
As of 2020-10-21 20:12 GMT
Find Nodes?
    Voting Booth?
    My favourite web site is:

    Results (223 votes). Check out past polls.