*Shell Command Output*在调用像这样的shell命令时,如何告诉emacs不要弹出缓冲区?
(shell-command MY_COMMAND)
Run Code Online (Sandbox Code Playgroud)
目前,emacs将当前窗口拆分为两个,显示(通常是不相关的)输出缓冲区.对我而言,如果我能够在以后查找它,那将是完全足够的.
shell-command采用可选参数OUTPUT-BUFFER,您可以在其中指定要输出的缓冲区.如果是t(实际上不是缓冲区名称而不是nil),它将在当前缓冲区中输出.所以我们将它包装成一个with-temp-buffer并且永远不必为此烦恼:
(with-temp-buffer
(shell-command "cat ~/.emacs.d/init.el" t))
Run Code Online (Sandbox Code Playgroud)
也许使用shell-command是问题的根源.我想我找到了一个有效的解决方案call-process,尽管可能有更优雅的方式:
(call-process-shell-command
"cat ~/.emacs.d/init.el"
nil "*Shell Command Output*" t
)
Run Code Online (Sandbox Code Playgroud)