Команда оболочки Emacs не найдена - PullRequest
4 голосов
/ 09 декабря 2010

Я работаю на Mac OS X 10.5.8. Я пытаюсь выучить Emacs. Я очень новичок в этом и сегодня пытался вводить команды оболочки изнутри emacs. Я ввел pdflatex filename. Тем не менее, это дает мне ошибку, говоря

/bin/bash: pdflatex: command not found

У меня установлен LaTeX, и pdflatex отлично работает из командной строки в терминале.

Я получаю похожую ошибку для команды lsd, которую я определил в моем файле .bash_profile. Это тоже хорошо работает в командной строке в терминале.

Команда ls отлично работает в оболочке emacs.

Кто-нибудь имеет представление о том, что может происходить.

Как я могу заставить emacs распознавать все команды, которые отлично работают в командной строке терминала. В любом случае я могу сделать среду, используемую оболочкой emacs и терминальной командной строкой, идентичной? Если да, есть ли причина, по которой вы бы порекомендовали это сделать? Я очень мало знаю как bash, так и emacs.

Большое спасибо.

Ответы [ 2 ]

8 голосов
/ 09 декабря 2010

Возможно, оболочка Emacs работает не в той среде, в которой вы находитесь в командной строке терминала. Сравните вывод env при запуске внутри оболочки Emacs и при запуске в терминале. Обратите особое внимание на значения PATH.

0 голосов
/ 22 мая 2018

Из справки для команды shell:

Используемая программа взята из переменной 'явное-имя-оболочки-файла' или (если это ноль) из переменной среды ESHELL, или (если это ноль) из 'shell-file-name'.Если файл '~ / .emacs_SHELLNAME' существует или '~ / .emacs.d / init_SHELLNAME.sh', он задается в качестве начального ввода (но это может быть потеряно из-за ошибки синхронизации, если оболочка отбрасывает ввод приэто запускается).Буфер переводится в режим оболочки, давая команды для отправки ввода и управления подзадачами оболочки.Смотрите «режим оболочки».Смотрите также переменную 'shell-prompt-pattern'.

Так что вы можете просто создать символическую ссылку ~/.emacs_bash (для bash) или ~/.emacs_zsh (для zsh).В качестве альтернативы можно установить переменную explicit-shell-file-name, указав ~/.bash_profile или ~/.bashrc или ~/.zshrc, в зависимости от того, что вы используете, или вы можете воспроизвести, какую переменную окружения ESHELL также.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...