Shell Emacs如何在elisp中以交互命令行模式运行命令
我是Emacs的新手 我想在elisp中定义一个函数,以在交互式命令行模式下运行命令(如果可能的话,异步运行) 我目前的代码是:Shell Emacs如何在elisp中以交互命令行模式运行命令,shell,emacs,command,interactive,maxima,Shell,Emacs,Command,Interactive,Maxima,我是Emacs的新手 我想在elisp中定义一个函数,以在交互式命令行模式下运行命令(如果可能的话,异步运行) 我目前的代码是: (defun ma () ;run maxima batch on the current file (interactive) (let* ((fn (buffer-file-name)) (cmd (concat "maxima -b " fn))) (message "cmd:%s" cmd) (shell-comm
(defun ma () ;run maxima batch on the current file
(interactive)
(let*
((fn (buffer-file-name)) (cmd (concat "maxima -b " fn)))
(message "cmd:%s" cmd)
(shell-command cmd)
)
)
当我在maxima代码中没有断点时,这可以很好地工作。当我有断点“break()”时,我必须与程序交互。当前的shell命令函数不起作用
我还喜欢“shell命令”功能的机制,屏幕将自动分成两部分,并在第二个窗口中显示编程运行信息。如果可能的话,我仍然希望在代码中包含此功能,您可以帮助我
任何帮助都将不胜感激
我想在elisp中定义一个函数,以便在interactive中运行命令
命令行模式(如果可能,异步)
也许
async shell command
就是您要查找的有关函数的帮助信息。请在commint模式下使用内置的compile
函数
(defun ma (&optional filename)
(interactive)
(compile (format "maxima -b %s" (or filename (buffer-file-name))) t))
这将打开一个新窗口,并显示正在运行的程序的输出。提交模式意味着编译过程是交互式的,您将能够从编译缓冲区向程序发送输入 看起来你想重新发明imaxima:or。