2010-10-02 7 views
5

J'ai vu une réponse ici comment démarrer le shell cygwin. Cependant, la sortie du shell cygwin est foirée.shell cygwin dans Emacs - sortie en panne?

(defun cygwin-shell() 
    "Run cygwin bash in shell mode." 
    (interactive) 
    (let ((explicit-shell-file-name "C:/cygwin/bin/bash")) 
    (call-interactively 'shell))) 
(setq explicit-bash-args '("--login" "-i")) 

et est ici un exemple de sortie de la coquille

]0;~ 
[email protected] ~ 
$ cd ~ 
]0;~ 
[email protected] ~ 
$ dir 
]0;~ 
[email protected] ~ 

comme on peut le voir, la sortie est foiré. Comment puis-je réparer ça? Edit: je viens de remarquer que^[] 0 apparaît toujours à la fin de chaque commande \ sinon le texte de sortie fonctionne bien. De toute façon pour se débarrasser de cette fin?

Répondre

4

Très bien, j'ai compris cela. dans ~/.bashrc, j'ai ajouté

export PS1="\e[0;31m[\[email protected]\h \W]\$ \e[m " 

ce qui rend rouge rapide en une seule ligne (ce qui est facile sur les yeux contre le jaune invite Cygwin original!)

voir http://www.cyberciti.biz/faq/bash-shell-change-the-color-of-my-shell-prompt-under-linux-or-unix/

En plus , vous devez vous assurer que vous n'utilisez pas de fin de dos. Pour convertir les fins de dos à unix, le type C-x RET f unix et enregistrer ou dans emacs fichier

(set-buffer-file-coding-system 'unix) 
2

Regardez dans EmacsW32. Avec elle, votre configuration .emacs devient

(setq w32shell-cygwin-bin "c:\\cygwin\\bin") 
    (require 'w32shell) 
    (w32shell-add-emacs) 
    (w32shell-set-shell "cygwin") 

et tout fonctionne.

2

Dans Emacs 24.2, j'ai dû mettre la ligne export PS1=... de la réponse de Seth (2) dans ~/.emacs_bash au lieu de ~/.bashrc.

1

Utilisez

export PS1="\e[0;32m\[email protected]\h\e[m \e[0;33m\w\e[m\n\$ " 

Si vous souhaitez conserver la couleur et le format d'origine.