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

时间:2012-09-13 14:00:59

标签: perl emacs

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

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

1 个答案:

答案 0 :(得分:3)

有第三方模式可以运行劣质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)导航错误的附加优势。