2

我最近一直在玩弄 comint-mode 并且我注意到一些奇怪的行为。它的记录很差,所以我想知道是否有人对此有任何见解。

在某些模式下,comint-send-string将发送的任何内容插入到 comint 缓冲区,然后发送到关联的进程,而在其他模式下,输入直接发送到进程而不放入缓冲区。例如,run-python使用新的 (24.3) python.el 然后 do (comint-send-string "*Python*" "x=3\n"),将字符串x=3插入缓冲区然后执行。但是,如果你这样做M-x shell了,然后(comint-send-string "*shell*" "x=3\n"),没有文本被插入到缓冲区中,输入只是被直接发送到 shell 进程以执行。

有谁知道为什么存在这种行为差异或我如何改变它?

4

2 回答 2

2

我在 linux 上观察到相同的行为(emacs-version== "24.3.50.7",GUI 和emacs -Q -nw):两者都没有

(comint-send-string "*Python*" "x=3\n")

也不

(comint-send-string "*shell*" "x=3\n")

comint缓冲区中插入任何内容(即,下一个提示出现在前一个提示之后——它们之间甚至没有换行符)。

于 2013-07-28T20:58:36.250 回答
2

我最终想通了。出于某种原因,OSX 上的系统 python 会导致这种行为,从 homebrew 安装 python 修复了它。

于 2013-07-29T20:04:47.310 回答