Получение Emacs для соблюдения моих настроек оболочки по умолчанию +
Я пытаюсь заставить свою оболочку Emacs имитировать мои стандартные сеансы терминала. В принципе, я бы хотел, чтобы он уважал те же PATH, а также командную строку.
Пока у меня есть несколько проблем:
- PATH не найден, ниже используется исправление, которое я использую для этого.
- Я получаю коды цветов ascii по всему месту с другим исправлением, которое я пробовал.
У меня есть следующее в файле mwilliams.el. Первые несколько строк дают мне доступ к /usr/local/bin в оболочке M-x, которая решает половину проблемы, и последние несколько строк меня запускают с Zsh, но моя подсказка очень винтовая.
(setenv "PATH" (concat (getenv "PATH") ":/usr/local/bin"))
(setq exec-path (append exec-path '("/usr/local/bin")))
(defun shell ()
(interactive)
(ansi-term "/bin/zsh"))
С приведенным выше я получаю следующее повсюду, когда я использую оболочку M-x.
4m\342/236/234
Используемые режимы: (Term: char run yas)
Насколько я могу судить об этом, не уважая некоторые цветовые коды ascii в моей теме Zsh. Однако я вижу несколько цветов; так что это на полпути. Мое лучшее предположение заключается в том, что мне нужно, чтобы он уважал мой .zshrc, который содержит информацию о моей теме и PATH.
Я просто мочу ноги в Emacs, и получить сплошную оболочку - одна из последних вещей, которые мне нужны, прежде чем я смогу начать переносить мою ежедневную работу (и все остальное) на Emacs.
Я запускаю Emacs 23.1 (9.0) в OSX Snow Leopard.
Ответы
Ответ 1
Я не использую ЗШ, но я нашел это в ЗШ FAQ и дал ему попробовать. Я получил яркие буквы без фанковых персонажей.
<Предварительно > 3.10: Почему zsh больше не работает в режиме оболочки Emacs?
Подробнее: http://www.faqs.org/faqs/unix-faq/shell/zsh/#ixzz0TyTJsHMq
Другой метод - поставить
#!/bin/sh
TERM=emacs exec zsh
в файл ~/bin/eshell
, затем chmod +x ~/bin/eshell
и скажите emacs использовать это как оболочку, добавив
(setenv "ESHELL" (expand-file-name "~/bin/eshell"))
до ~/.emacs
.
Ответ 2
Для пути есть пакет exec-path-from-shell (только для OS X).
Он получает $MANPATH
, $PATH
и exec-path
из оболочки и устанавливает их для emacs.