2009-10-14 14 views
13

Sto provando a ottenere la mia shell Emacs per simulare quella delle mie sessioni terminali standard. Fondamentalmente mi piacerebbe che rispettasse lo stesso PATH e il prompt dei comandi.Ottenere Emacs per rispettare le mie shell + opzioni predefinite

Finora ho alcune questioni:

  • PATH non viene trovato, qui di seguito è la correzione che sto utilizzando per questo.
  • Ricevo codici di colore ascii dappertutto con un'altra correzione che ho provato.

Ho il seguente nel mio file mwilliams.el. Le prime poche righe mi danno accesso a/usr/local/bin nella shell M-x, che risolve metà del problema e le ultime poche linee mi fanno girare con Zsh ma il mio prompt è molto avvitato.

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


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

Con quanto sopra ottengo tutto ciò che segue in tutto quando ho M-x shell.

4m\342/236/234 

Le modalità in uso sono: (Termine: Yas Run char)

Per quanto posso dire che non è rispettare alcuni dei codici colore ASCII nel mio tema Zsh. Sto comunque vedendo alcuni colori che arrivano; quindi è a metà strada lì. La mia ipotesi migliore è che ho bisogno di rispettare il mio .zshrc che contiene informazioni sul mio tema e sul PERCORSO.

Mi sto solo bagnando i piedi in Emacs e ottenere una shell solida è una delle ultime cose di cui ho bisogno prima di poter iniziare a migrare il mio lavoro quotidiano (e tutto il resto) su Emacs.

Sto eseguendo Emacs 23.1 (9.0) in OSX Snow Leopard.

risposta

16

Io non uso zsh ma ho trovato questo nel zsh FAQ e fatto un tentativo. Ho un ls colorato senza personaggi funky.

 
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 

Un altro metodo è quello di mettere

#!/bin/sh 
TERM=emacs exec zsh 

in un file ~/bin/eshell, poi chmod +x ~/bin/eshell, e dire a Emacs di utilizzare tale come il guscio aggiungendo

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

a ~/.emacs.

+0

Impressionante, il metodo n. 2 ha funzionato come un incantesimo! Grazie! – mwilliams

+0

I get 'La shell di processo è stata interrotta in modo anomalo con il codice 1 \ nopen terminale fallito: impossibile trovare il database di terminfo' quando si esegue questa operazione. Qualcuno di voi ha fatto esperienza di questo e in tal caso è stato possibile aggirare questo problema? –

Problemi correlati