I'm trying to get my Emacs shell to mimic that of my standard terminal sessions. Basically I would like it to respect the same PATH as well as the command prompt.
So far I have a few issues:
- PATH isn't found, below is the fix I'm using for that.
- I'm getting ascii color codes all over the place with another fix I tried.
I have the following in my mwilliams.el file. The first few lines give me access to /usr/local/bin in M-x shell, which solves half the problem and the last few lines get me running with Zsh but my prompt is very screw.
(setenv "PATH" (concat (getenv "PATH") ":/usr/local/bin"))
(setq exec-path (append exec-path '("/usr/local/bin")))
(defun shell ()
(interactive)
(ansi-term "/bin/zsh"))
With the above I get the following all throughout when I M-x shell.
4m\342/236/234
The modes being used are: (Term: char run yas)
As far as I can tell it's not respecting some of the ascii color codes in my Zsh theme. I am however seeing a few colors coming through; so it's half way there. My best guess is that I need it to respect my .zshrc which contains information about my theme and PATH.
I'm just getting my feet wet in Emacs and getting a solid shell is one of the last few things I need before I can start migrating my daily work (and everything else) over to Emacs.
I'm running Emacs 23.1 (9.0) in OSX Snow Leopard.
I don't use zsh but I found this in the zsh FAQ and gave it a try. I got a colorful ls with no funky characters.
Another method is to put
into a file
~/bin/eshell
, thenchmod +x ~/bin/eshell
, and tell emacs to use that as the shell by addingto
~/.emacs
.For the path, there is the package exec-path-from-shell (OS X only).
It gets
$MANPATH
,$PATH
andexec-path
from the shell and sets them for emacs.