Emacs Perl模式:将脚本/缓冲区发送到Perl解释器



假设我正在默认Perl模式(Emacs 23.1.1附带的模式)下用Emacs编辑Perl文件或缓冲区

有没有一种方法可以直接将完整的文件(或缓冲区)发送到Perl解释器并查看结果(在单独的缓冲区上)?

有第三方模式用于运行较差的perl进程并与它们交互(例如inf-perl.el),但emacs 23.1.1中没有包含任何模式。

然而,使用perl运行缓冲区的一种简单方法是使用shell-command-on-region。例如,此函数将在缓冲区上运行perl,并在名为*Perl Output*:的缓冲区中显示输出

(defun perl-on-buffer ()
  (interactive)
  (shell-command-on-region (point-min) (point-max) "perl" "*Perl Output*")
  (display-buffer "*Perl Output*"))

使用M-x-perl-on-buffer在perl缓冲区中运行它,或者将它绑定到一个密钥上,如下所示:

(eval-after-load 'perl-mode
  '(define-key perl-mode-map (kbd "C-c C-c") 'perl-on-buffer))

另一种选择是使用compile/recompileperl <filename>作为编译命令。这适用于文件内容而不是缓冲区内容,并具有使用C-x `next-error)导航错误的额外优势。

最新更新