6

I installed emacs in ubuntu (using sudo apt-get install emacs). I am havine the problem that when I try to run a shell command from within emacs (for example M-! ls) the output is preceded by this:

bash: cannot set terminal process group (-1): Invalid argument
bash: no job control in this shell

In my .emacs I have the option (setq shell-command-switch "-ic") . This is so that I can presumably use my aliases as well as commands. This has not given me issues at work and it lets me use my aliases. How can I use my aliases but avoid this problem?

4

1 回答 1

0

我猜想通过像这样设置你的 shell-command-switch,你正在执行你的.profile或系统配置文件中的代码路径,这取决于 shell 中的作业控制。

我将通过在正确的代码路径中定义所需的别名来修复此错误,以便它们出现在未以开头的 shell 中-i

您可以尝试交换或类似-i--rcfile .aliases东西,以便在 emacs 中与您的登录 shellalias中没有区别。alias如果您的 .bashrc 对您的工作很重要,请创建一个类似 .bashrc.emacs 的文件,其中包含内容

source .bashrc
source .aliases

--rcfile .bashrc.emacs 并在您的(setq)说明中指向该文件。

你在哪里定义你的别名?Ubuntus .bashrc 读取 .bash_aliases 并且这也应该发生在非交互式 shell 上。

于 2013-10-23T16:15:41.450 回答