我一般是 xemacs 和 linux 的新手,所以请考虑我是新手。我想知道 elisp 是否有理由不立即执行一个或多个命令。
我的 init.el 中有以下代码:
(defun myClear ()
"Clears console output buffer (F5)"
(erase-buffer "*Shell Command Output*"))
(defun myMake ()
"Executes make (F6)"
(shell-command "make"))
(defun myClearMake ()
"Clears console output buffer before executing make (F7)"
(erase-buffer "*Shell Command Output*")
(shell-command "make"))
它们绑定到 F5-F7 键。按 F7 不会产生与先按 F5,然后按 F6 相同的结果,后者按预期工作。
相反,(erase-buffer ...) 语句似乎被跳过,或者可能在 (shell-command ...) 之前执行。由于 shell-command 在转储 shell 输出之前会擦除缓冲区,因此很难说。
我所期望的:控制台输出被清除。这在 make 仍在运行并且尚未产生任何输出时应该是可见的(在我的情况下是几秒钟)。
我不知道如何进一步测试它,即使这似乎是一项常见的任务,我也找不到任何合适的或类似的东西。还要考虑到我不仅对获得上述行为感兴趣,而且还了解我做错了什么。
任何解释此行为的 elisp 机制的链接/指针都值得赞赏。谢谢, 塔什