我目前正在使用 emacs 进行编程。我在 .emacs 中定义了一个函数,它保存我的所有工作并执行解释器以在当前打开的 shell 缓冲区中运行我的工作。通常我会在一帧或多帧中进行编辑,并在单独的帧中打开外壳。我遇到的问题是,当我运行我的保存和执行功能时,所有内容都已保存,但外壳缓冲区随后会显示在我当前正在编辑的帧中。所以我有两帧显示 shell 缓冲区,我看不到我刚刚编辑的源代码。很多时候,当我在编程时,我想立即将代码的输出与我刚刚编写的代码进行比较。它'
(defun execute-script ()
"Switch to shell buffer and re-execute the last command."
(interactive)
(save-some-buffers)
(switch-to-buffer "*shell*")
(end-of-buffer)
(comint-previous-input 0)
(comint-send-input))
正如你所看到的,我的功能目前相当原始,只是在 shell 中重新执行最近使用的命令。
我知道 Emacs 具有切换到不同帧中的缓冲区的功能,因为 ido 缓冲区切换器代码就是这样做的。有人对我需要用什么来替换对 switch-to-buffer 的调用以获得所需的效果有任何指示吗?
问候贾尔斯。