2009-10-14 8 views
13

Emacs kabuğumu standart terminal oturumlarıma benzetmeye çalışıyorum. Temel olarak, aynı PATH'ye ve komut istemine saygı duymasını isterim. Aşağıda bunun için kullanıyorum düzeltmedir,Varsayılan kabuk + seçeneklerime saygı duymak için Emacs'i kullanma

  • YOLU bulunmazsa:

    Şimdiye kadar bazı sorunlar var.

  • Ascii renk kodlarını her yerde denedim başka bir düzeltme ile alıyorum.

Mwilliams.el dosyasında aşağıdakiler var. İlk birkaç satır, M-x kabuğunda/usr/local/bin dizinine erişmemi sağlıyor, bu da problemin yarısını çözüyor ve son birkaç satır Zsh'le çalışmamı sağlıyor ama benim istemi çok vidalı.

(setenv "PATH" (concat (getenv "PATH") ":/usr/local/bin")) 
(setq exec-path (append exec-path '("/usr/local/bin"))) 


(defun shell() 
    (interactive) 
    (ansi-term "/bin/zsh")) 

Yukarıdakilerle birlikte, M-x kabuğunun tamamı boyunca aşağıdakileri elde ediyorum. Kullanılan

4m\342/236/234 

modları şunlardır: (Terim: Char çalıştırma yas) Bildiğim kadarıyla benim Zsh tema ASCII renk kodlarının bazı saygı değil söyleyebilirim

. Bununla birlikte birkaç renk görüyorum; yani orası yarısı. En iyi tahminim, tema ve PATH hakkındaki bilgileri içeren .zshrc'ye saygı duymak için ihtiyacım olmasıdır.

Sadece ayaklarımı Emacs'ta ıslatıyorum ve sağlam bir kabuk almak, günlük işlerimi (ve diğer her şeyi) Emacs'e taşımaya başlamadan önce ihtiyacım olan son birkaç şeyden biri.

OSX Snow Leopard'da Emacs 23.1 (9.0) çalıştırıyorum.

cevap

16

Zsh kullanmıyorum ama bunu zsh FAQ'da buldum ve denedim. Korkak karakterleri olmayan renkli bir ls var.

 
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 

başka yöntem, bir dosya ~/bin/eshell, daha sonra chmod +x ~/bin/eshell içine

#!/bin/sh 
TERM=emacs exec zsh 

koymak ve bu kabuk olarak ~/.emacs için

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

ekleyerek kullanmak emacs'ı anlatmaktır.

+0

Harika, yöntem # 2 bir çekicilik gibi çalıştı! Teşekkürler! – mwilliams

+0

"1" işleminde kabuk çıkıldı ve kod 1 \ nopen terminali başarısız oldu: Bunu yaparken terminfo database 'bulamıyor. İkiniz de bunu deneyimlediniz mi ve eğer öyleyse etrafta dolaşabildiniz mi? –

1

Yol için exec-path-from-shell (yalnızca OS X) paketi var.

Bu kabuktan $MANPATH, $PATH ve exec-path alır ve bunları emacs için ayarlar.

İlgili konular