3

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

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

4

1 回答 1

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*"))

在 perl 缓冲区中运行它M-x perl-on-buffer或将其绑定到一个键,如下所示:

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

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

于 2012-09-13T15:09:07.940 回答