我常常发现自己在EMACS中并排运行两个窗口,一个用于编辑,另一个用于编译,因此一个是文本模式,另一个是shell模式。 shell只运行一个编译命令,我发现编辑窗口到shell窗口的C-x o键击太多,然后是最新命令的M-p,然后切换回编辑窗口。我在.emacs中为这个作业编写了以下elisp脚本,但它实际上并没有发出命令,它在另一个窗口中显示最后一个命令并切换回来,它错过了一个" RET"在comint-previous-input之后。
(defun issue-last-command-in-the-shell-in-another-window ()
"issue the last command in the shell in another window"
(interactive)
(progn
(other-window 1)
(comint-previous-input 1)
(other-window 1 )
))
这是我第一次写elisp,有人可以帮我吗?或者是否已经有一个关键组合来做到这一点?或者如果有一些你觉得这个案件有用的套餐?
谢谢
答案 0 :(得分:4)
不需要自定义功能。使用compile
运行命令,然后使用recompile
重新运行它。
有关详细信息,请参阅(info "(emacs) Compilation")
。
答案 1 :(得分:1)
在你的函数中,在(comint-previous-input 1)
调用之后,添加以下行,它将把输入发送到shell:
(comint-send-input)