2008-12-15 21 views
15

He estado tratando de usar Zsh en mi sesión de emacs, sin emacs remapeando todas las claves Zsh. Creo que el término ansi funciona bastante bien para esto, pero sigo teniendo algunos problemas. Que estaba recibiendo una gran cantidad de caracteres basura emitidos con, yo era capaz de solucionar con:Obteniendo Emacs ansi-term y Zsh para jugar bien

## Setup proper term information for emacs ansi-term mode 
[[ $TERM == eterm-color ]] && export TERM=xterm 

Pero todo todavía no funciona perfectamente. Ahora estoy teniendo problemas con la salida fuera de la pantalla, especialmente cuando uso algo como C-r para buscar.

Cualquier pensamiento. ¿Alguien más tiene Zsh + Ansi-term trabajando correctamente?

+3

1 - usted no es el único. Sin embargo, solo experimento este problema en el modo mac en tty. – SetJmp

Respuesta

3

Hmmm. No creo que alguna vez haya visto alguna edición de lujo funcionar a largo plazo, aunque no lo he intentado en unos 20 años. Voy a preguntar, de paso, si has probado Shell-mode (M-x shell) ya que es mucho más natural con EMACS de todos modos.

Dicho esto, leyendo el archivo term.el, parece que ansi-term está haciendo muchas cosas por sí mismo. Es posible que desee ver el término código de modo sin formato, comenzando alrededor de la línea 1230, al menos en EMACS 22.3.

+0

'shell' fue el único que funcionó para mí. ¡Gracias! – duma

0

Me di cuenta. Fue un problema de configuración de emacs. Este bit de elisp en mi .emacs lo estaba causando:

(custom-set-variables 
'(fringe-mode nil nil (fringe)) 
'(fringes-outside-margins t t)) 

Gracias por la ayuda.

-1

Falsa alarma, eso no lo solucionó. Lo que encontré es que funciona bien si no cambia el tamaño de la ventana. Puedo reproducirlo como:

  1. lanzar una emacs -q limpias
  2. inicio ANSI plazo y el uso zsh
  3. Hacer ventana de pantalla completa
  4. salida algo que llena la pantalla
  5. Tipo Cr
  6. El aviso estará fuera de la pantalla

Quizás haya alguna manera en que pueda hacer el espacio entre la salida y el minibúfer más grande para compensar el sobreimpulso?

+2

¡Hola! Edite y actualice su pregunta original en lugar de agregar "respuestas" con más información. –

1

Estaba buscando esto también desde hace bastante tiempo. Para mí agregar siguiente al

;; ansi-term 

(global-set-key "\C-x\C-a" '(lambda()(interactive)(ansi-term "/bin/zsh"))) 
(global-set-key "\C-x\ a" '(lambda()(interactive)(ansi-term "/bin/zsh"))) 

funciona. Escogí esto de http://svn.assembla.com/svn/id774/scripts/dot_files/dot_emacs.d/elisp/global-set-key.el.

Estoy seguro de que hay otras cosas buenas en esa secuencia de comandos. Como una pantalla de bonificación adicional parece jugar muy bien con emacs para mí.

12

Probar MultiTerm.

Es el único modo de terminal Emacs que parece funcionar bien con zsh. Le permite establecer fácilmente qué comandos quiere que sean capturados por emacs y cuáles desea enrutar a la terminal. La configuración predeterminada ha sido lo suficientemente buena para mí hasta ahora.

Además, agregue lo siguiente a su .zshrc para permitir que emacs rastree su directorio actual mientras lo hace.

if [ -n "$INSIDE_EMACS" ]; then 
    chpwd() { print -P "\033AnSiTc %d" } 
    print -P "\033AnSiTu %n" 
    print -P "\033AnSiTc %d" 
fi 
+1

Esto es genial. ¿Sabes cómo extender esto a las conexiones ssh? (por ejemplo, suponiendo que mi caparazón se ha conectado a una máquina remota en una ruta particular). –

+0

@ AmelioVazquez-Reina - Ojalá lo hubiera hecho. Eso sería realmente útil. – bengineerd

0

uso M-r para el historial de comandos en Emacs, no C-r

Cuestiones relacionadas