Получение 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.