假设我正在以默认 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*"))
在 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
/ recompile
withperl <filename>
作为编译命令。这适用于文件内容而不是缓冲区内容,并且具有使用( ) 导航错误的附加优势。C-x `
next-error