找不到Emacs shell命令

时间:2010-12-09 00:06:26

标签: shell emacs

我在Mac OS X 10.5.8上工作。我正在尝试学习emacs。我是新手,今天尝试从emacs中输入shell命令。我输入了pdflatex filename。但是,它给我一个错误说

/bin/bash: pdflatex: command not found

我安装了LaTeX,并且pdflatex可以在终端的命令行中正常工作。

我在lsd文件中定义的命令.bash_profile出现类似错误。这在终端的命令行上也能正常工作。

命令ls在emacs shell中运行正常。

有没有人知道可能会发生什么。

如何让emacs识别终端中命令行正常工作的所有命令。 无论如何我可以使emacs shell和终端命令行使用的环境相同吗? 如果是这样,你有什么理由建议不要这样做吗?我对bash和emacs都知之甚少。

非常感谢。

3 个答案:

答案 0 :(得分:8)

Emacs shell可能在与终端命令行上的环境不同的环境中工作。比较在Emacs shell中运行时和在终端中运行时env的输出。请特别注意PATH

的值

答案 1 :(得分:0)

来自shell命令的帮助:

  

使用的程序来自变量'explicit-shell-file-name',    或者(如果为零)来自ESHELL环境变量,    或者(如果是零)来自'shell-file-name'。   如果存在'〜/ .emacs_SHELLNAME'文件或'〜/ .emacs.d / init_SHELLNAME.sh',   它作为初始输入给出(但由于时间原因,这可能会丢失   错误,如果shell在启动时丢弃输入)。   缓冲区处于Shell模式,提供发送输入的命令   并控制shell的subjobs。请参阅'shell-mode'。   另请参见变量'shell-prompt-pattern'。

因此,您只需创建符号链接~/.emacs_bash(对于bash)或~/.emacs_zsh(对于zsh)。或者,将变量explicit-shell-file-name设置为指向~/.bash_profile~/.bashrc~/.zshrc,无论您使用哪个,也可以使用哪个ESHELL环境变量。

答案 2 :(得分:0)

根据以下article。如果从外壳启动emacs,它将继承外壳的环境变量。因此,只需从您最熟悉的任何外壳启动emacs即可自动设置环境变量。例如:

cd /file_path
emacs file_name