Emacs shell 命令输出“无法设置终端进程组”和“此 shell 中没有作业控制”

问题描述 投票:0回答:3

当我在 Debian 6.0 (Squeeze) 上的 Emacs 中运行 shell-command 时,例如

(shell-command "ls")

输出前面带有

bash:无法设置终端进程组(-1):参数无效
bash:此 shell 中没有作业控制

当将 shell 命令(例如 perltidy)应用于缓冲区时,这特别烦人,因为这些行最终位于缓冲区的顶部。

这是新安装的 Debian 6.0 (Squeeze) 系统,带有来自 apt-get 的最新 emacs。

% uname -a
Linux 2.6.32-5-xen-amd64 #1 SMP 3 月 8 日星期二 00:01:30 UTC 2011 x86_64 GNU/Linux
% emacs --版本
GNU Emacs 23.2.1
% dpkg -l | grep emacs
ii emacs 23.2+1-7
ii emacs23 23.2+1-7 
ii emacs23-bin-common 23.2+1-7 
ii emacs23-通用 23.2+1-7 
ii emacsen-common 1.4.22

很乐意根据需要提供其他信息。谢谢!

bash emacs debian
3个回答
5
投票

没关系,就是因为这个:

(set-variable 'shell-command-switch "-ic")

0
投票

我怀疑这个故事还有更多内容。请参阅 http://old.nabble.com/bash-under-emacs-gives-%22cannot-set-terminal-process-group%22-to33399261.html#a33399456 报告的问题(这是针对 Cygwin环境,但潜在的错误可能会影响 Linux 和 Cygwin 上的 bash 行为。


0
投票

谢谢你,我通过 .emacs 中的以下行解决了我的问题:

(set-variable 'shell-command-switch "-c")

;如果没有交互,我现在可以 C-u M-x date ;(意思是,我可以在光标位置插入日期标准输出结果)。

© www.soinside.com 2019 - 2024. All rights reserved.