我怎样才能让 emacs 编译我的 c++ 代码并 运行 它在一个新的 window 中?

How can I make emacs compile my c++ code and run it in a new window?

有没有一种方法可以使 emacs 编译并 运行 我的代码在外部控制台 window 中使用命令 M-x compile (我的意思是外部控制台 window 是我希望它 运行 我在新控制台 window 中的代码就像我 运行 我在 visual studio 中的 C++ 代码时那样。

我希望 emacs 自动打开一个新控制台 window 和 运行 M-x compile 之后的可执行文件,如下所示:

通常使用 Emacs,当您想要一些晦涩的(即一些简单的或对您的用例来说是特殊的)自动化时,您只需编写一个命令,它就可以执行您想要的操作。

举个例子。以下 Elisp 代码调用函数 and-run,当编译完成时(通过使用 hook compilation-finish-functions)。

(defun and-run (&rest _)
  "run after comilation, an not elaborated example function"
  (interactive)
  (let ((exe "./test.out")
        (prevent-closing (concat "echo \"Press Enter to continue\"" ";"
                                 "read"))
        (terminal "xterm -e"))
  (when (file-exists-p exe)
    (let ((my-command (concat exe ";" prevent-closing)))
      (shell-command (format "%s %s" terminal (shell-quote-argument my-command)))))))

(add-hook 'compilation-finish-functions #'and-run)

由于我不是 Windows 用户,您必须对此功能进行一些小调整,以便能够 运行 在 Windows 上使用它。

注意:还有一个 compilation-start-hook,如果您想要比较你的 exe 的 file-modification 次。