我在python中编写了一个简单的shell并使用nuitka编译它。 我的shell作为一些简单的命令,如“说字符串”,“盲文字符串”,“停止”等。 该程序使用python accessible_output包与windows中的屏幕阅读器进行通信。 好吧,这适用于普通的shell,或从Windows执行它。 现在,我想从emacs中运行这个程序,比如emacs中的普通shell。 我尝试了一些函数,“start-process”,“shell-command”,但我无法编写命令。 我的程序显示一个提示,就像python解释器,我可以在其中输入命令。 Elisp能够运行python shell,mysql shell,但是我无法运行自己的shell。 救命啊!
答案 0 :(得分:0)
看看它是如何在nodejs-repl https://github.com/abicky/nodejs-repl.el/blob/develop/nodejs-repl.el中完成的(见第308行)
答案 1 :(得分:0)
在python-mode.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。
答案 2 :(得分:0)
Emacs有许多与外部程序交互的不同方式。从您的文本中,我怀疑您需要在emacs手册和elisp参考手册中查看comint。 Comint是缓冲区功能中的低级通用shell(它是shell模式使用的)。
在帖子的各行之间阅读,我建议你看一下emacspeak。和speechd.el,这两个都是为emacs添加语音的包。 Speechd.el是骨干,使用语音调度程序,而emacspeak功能非常丰富。 emacspeak软件包使用Tcl脚本与硬件或软件语音服务器通信。它还有一个用python编写的mac版本,它与OSX accessiblity(voiceOver)子系统通信。看看这些软件包是如何工作的,可能会为你提供很好的例子,说明如何让你的软件包做你想做的事。
答案 3 :(得分:0)
如何从emacs shell缓冲区内启动脚本呢?
M-x shell RET /path/to/my/script RET