Getting Emacs to respect my default shell + options
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 s开发者_如何学编程hell ()
(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.
3.10: Why does zsh not work in an Emacs shell mode any more? Read more: http://www.faqs.org/faqs/unix-faq/shell/zsh/#ixzz0TyTJsHMq
Another method is to put
#!/bin/sh
TERM=emacs exec zsh
into a file ~/bin/eshell
, then chmod +x ~/bin/eshell
, and tell emacs to use that as the shell by adding
(setenv "ESHELL" (expand-file-name "~/bin/eshell"))
to ~/.emacs
.
For the path, there is the package exec-path-from-shell (OS X only).
It gets $MANPATH
, $PATH
and exec-path
from the shell and sets them for emacs.
精彩评论