views:

382

answers:

1

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.

And finally I'm running Emacs 23.1 (9.0) in OSX Snow Leopard.

Any thoughts? Thanks!

+1  A: 

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.

Awesome, method #2 worked like a charm! Thanks!
mwilliams