http://qs321.pair.com?node_id=442175


in reply to Re: Desparately seeking a bilingual vim/Emacs expert
in thread Desparately seeking a bilingual vim/Emacs expert

Modifying this to output Data::Dumper stuff (good idea) would be straight-forward.
Here's my attempt. I'd be very grateful if someone who knows Emacs could actually try it.
(defun perl-dbg (name) "Insert a debugging print statement" (insert "use Data::Dumper qw( Dumper );\nwarn Dumper [ ]\n") (search-backward "[ ")
I'm not sure what document templates are for.
The idea is that you hit a key, and the editor pastes in a template from another file. Any suggestions for how to do that would be greatly appreciated.
For indenting, I have this inside (custom-set-variables):
I'm guessing:
'(cperl-close-paren-offset -4)
Outdent 4 columns on a closing paren?

'(cperl-continued-statement-offset 2)
Indent 2 columns when a statement wraps?

'(cperl-indent-level 4)
Indent four columns per indentation level?

'(cperl-indent-parens-as-block t)
Indent parens like blocks?

'(cperl-label-offset 0)
Put labels in the zeroth column?

'(cperl-tab-always-indent t)
Convert tabs to spaces?

Could someone knowledgeable confirm (or correct) those guesses?

Replies are listed 'Best First'.
Re^3: Desparately seeking a bilingual vim/Emacs expert
by coolmichael (Deacon) on Mar 25, 2005 at 02:33 UTC
    (defun perl-dbg () "Insert a debugging print statement" (interactive) (insert "use Data::Dumper qw( Dumper );\nwarn Dumper [ ];\n") (search-backward "[ ")) (global-set-key "\C-c\C-p" 'perl-dbg)
    Then typing CTL-C CTL-p inserts this text:
    use Data::Dumper qw( Dumper ); warn Dumper [ ];
    and leaves the cursor under the [ character. I wasn't sure if you wanted to prompt for the name of the variable(s) to dump, so I changed (defun perl-dbg (name) to (defun perl-dbg (). The statement (interactive) makes it interactive, so that it can be bound to a key combination. Here's a version that prompts for a variable name (or names):
    (defun perl-dbg (name) "Insert a debugging print statement" (interactive "svariable to dump: ") (insert "use Data::Dumper qw( Dumper );\nwarn Dumper ") (insert name) (insert ";\n"))
    There are probably better ways to handle strings in Emacs-Lisp, but I've only recently started playing with it.
      Thanks for debugging my attempted debugging tool!
      Excellent. Thank-you!