2009-10-14 22 views
13

我試圖讓我的Emacs外殼模仿我的標準終端會話。基本上我希望它遵守相同的PATH以及命令提示符。獲取Emacs尊重我的默認外殼+選項

到目前爲止,我有幾個問題:

  • 路徑沒有找到,下面是我使用的修復。
  • 我收到了我試過的另一個修復程序的所有地方的ascii顏色代碼。

我在我的mwilliams.el文件中有以下內容。前幾行讓我可以訪問M-x shell中的/ usr/local/bin,它解決了一半的問題,最後幾行讓我用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 

正在使用的模式是:(期限:焦炭運行亞斯)

至於我可以告訴它不尊重一些ASCII顏色代碼在我的巖組的主題。然而,我看到了幾種顏色;所以它的一半。我最好的猜測是我需要它尊重我的.zshrc,其中包含有關我的主題和PATH的信息。

我只是在Emacs中弄溼了自己的腳,並且在我開始將我的日常工作(以及其他任何事情)遷移到Emacs之前,獲得堅實的外殼是我需要的最後幾件事之一。

我在OSX Snow Leopard中運行Emacs 23.1(9.0)。

回答

16

我不使用zsh,但我發現這在zsh FAQ,並試了一下。我得到了一個色彩鮮豔的ls,沒有時髦的人物。

 
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 

另一種方法是把

#!/bin/sh 
TERM=emacs exec zsh 

到一個文件~/bin/eshell,然後chmod +x ~/bin/eshell,並告訴emacs的,作爲外殼加入

(setenv "ESHELL" (expand-file-name "~/bin/eshell")) 

~/.emacs使用。

+0

真棒,方法#2工作就像一個魅力!謝謝! – mwilliams 2009-10-16 01:21:15

+0

我得到'代碼1異常退出的進程shell \ nopen終端失敗:找不到terminfo數據庫'時,這樣做。你們中的任何一個都遇到過這種情況,如果是的話,你們能夠避開它嗎? – 2013-02-10 00:50:38

1

對於路徑,有包exec-path-from-shell(僅限OS X)。

它從shell中獲取$MANPATH,$PATHexec-path並將它們設置爲emacs。