如何从elisp运行自己的shell?

2024-05-12 19:42:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我用python编写了一个简单的shell,并用nuitka编译了它。 我的shell作为一些简单的命令,如“say string”、“盲文string”、“stop”等。 该程序使用python可访问的输出包与windows下的屏幕阅读器进行通信。 好的,这在普通shell中运行良好,或者在windows中执行。 现在,我想在emacs中运行这个程序,比如emacs中的普通shell。 我试过一些函数,“启动进程”,“shell命令”,但我不会写命令。 我的程序会显示一个提示,比如python解释器,我可以在这里输入命令。 Elisp能够运行python shell、mysql shell,但我不能运行自己的shell。 救命啊!你知道吗


Tags: 函数命令程序string屏幕进程windowsshell
3条回答

Emacs有许多不同的方式与外部程序交互。从您的文本中,我怀疑您需要查看emacs手册和elisp参考手册中的comint。comit是缓冲区中的低级通用shell功能(它是shell模式所使用的)。你知道吗

从你帖子的字里行间,我也建议你看看emacspeak。以及说话人,它们都是向emacs添加语音的包。说话人是赤裸裸的,使用语音调度器,而emacspeak功能非常丰富。emacspeak包使用Tcl脚本与硬件或软件语音服务器进行通信。它还有一个用python编写的mac版本,它与OSX可访问性(voiceOver)子系统通信。看看这些软件包是如何工作的,很可能会给你一些很好的例子,说明如何让你的软件包做你想做的事情。你知道吗

在python中-模式.el,有问题的部分是

(with-current-buffer
(apply #'make-comint-in-buffer executable py-buffer-name executable nil (split-string-and-unquote args))

有关详细信息,请参见make-comint-in-buffer的docstring。你知道吗

看看nodejs replhttps://github.com/abicky/nodejs-repl.el/blob/develop/nodejs-repl.el中是如何实现的(参见第308行)

相关问题 更多 >