Emacs - `bzr`的`start-process`不会将状态输出到缓冲区

时间:2014-04-29 19:18:17

标签: emacs bazaar

在本机OSX Terminal.app中运行bzr时,我看到状态如下:

32376kB     2kB/s / Build phase:Adding file contents 1282/3629

但是,当运行start-process时,我看到没有状态输出到缓冲区。该过程运行正常,直到结束时没有可见的输出 - 仅两(2)行:

Created new stacked branch referring to bzr://bzr.savannah.gnu.org/emacs/trunk/.

Process bzr-process finished

Emacs提供的另一个侦听功能是否会捕获bzr上述状态输出,以便我可以看到进度?

(start-process
  "bzr-process"
  "*bzr-output*"
  "/macports/bin/bzr"
  "branch"
  "--stacked"
  "bzr://bzr.savannah.gnu.org/emacs/trunk"
  "/Users/HOME/Desktop/emacs-trunk")

1 个答案:

答案 0 :(得分:3)

也许你可以通过在tty而不是通过管道运行进程来让bzr为你提供即时状态输出。为此,只需将process-connection-type绑定为:

(let ((process-connection-type t))
  (start-process ...))

但是IIRC这个值已经默认为t,所以问题可能在其他地方。也许bzr检查$ TERM以查看它是否可以正确更新输出。所以也许你可以试试

(let ((process-environment (cons "TERM=xterm" process-environment)))
  (start-process ...))