2010-10-02 21 views
5

Vi una respuesta aquí sobre cómo iniciar el shell cygwin. Sin embargo, la salida del shell cygwin está en mal estado.shell cygwin en Emacs - ¿salida desordenada?

(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")) 

y aquí es un ejemplo de salida de la carcasa

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

como se puede ver, la salida se atornilla hacia arriba. ¿Cómo puedo solucionar esto?

editar: me acabo de dar cuenta de que^[] 0 siempre aparece al final de cada comando \ de lo contrario el texto de salida funciona bien. De todos modos para deshacerse de este final?

Respuesta

4

bien, me di cuenta de esto. en ~/.bashrc, añadí

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

esto hace publicidad rojo en una sola línea (que es fácil en los ojos frente a la amarilla en el símbolo cygwin original!)

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

Además , debes asegurarte de no utilizar dos terminaciones. Para convertir DOS terminaciones en Unix, tipo C-x RET f UNIX y guardar o archivar lugar en .emacs

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

Mira en EmacsW32. Con él, su configuración .emacs se convierte en

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

y todo funciona.

2

En Emacs 24.2, tuve que poner la línea export PS1=... de la respuesta de Seth (2) en ~/.emacs_bash en lugar de en ~/.bashrc.

1

Uso

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

Si desea mantener el color y formato original.