我使用的是Mac OS X 10.5.8系统,正在学习emacs。我对它非常陌生,今天尝试在emacs中输入shell命令。我输入了pdflatex filename
,但是它给了我一个错误提示。
/bin/bash: pdflatex: command not found
我已经安装了LaTeX,并且在终端命令行中,pdflatex可以正常使用。
对于我在
.bash_profile
文件中定义的lsd
命令,我也在终端命令行中成功执行了。但是在emacs shell中,我遇到了类似的错误。请问有人知道可能出现了什么问题吗?
我该如何让emacs识别所有在终端命令行中可以正常使用的命令?
是否有办法使emacs shell和终端命令行使用相同的环境?如果可以,您是否建议这样做?我对bash和emacs都了解甚少。
M-x setenv
更改了emacs shell的PATH。这样pdflatex就可以在emacs shell中工作了。然而,我在.bash_profile中定义的lsd
命令不起作用。有没有办法让环境完全相同? - Curious2learnM-x shell
,则可以在~/.emacs_SHELLNAME
或~/.emacs.d/init_SHELLNAME.sh
中为 SHELLNAME(例如“bash”)提供特定于emacs的初始化(请参见C-h f shell
)。一些替代M-x shell
的方法是M-x term
(或M-x ansi-term
)和M-x eshell
。 - phils(setq shell-command-switch "-ic")
来更改这个设置。 -i选项告诉bash要交互式地运行,从而使它能够加载/.bashrc文件。 这是一个简单的解决方法,但在运行快速shell命令时,您的/.bashrc文件中可能存在一些您不需要的内容。 在这种情况下,最好设置BASH_ENV环境变量,以便您可以更精细地控制发生的事情。 - miner49r