shell - Hacer que Emacs ansi-term y Zsh jueguen bien
(6)
Falsa alarma, eso no lo solucionó. Lo que encontré es que funciona bien si no cambia el tamaño de la ventana. Puedo reproducirlo así:
- Lanzar un emacs limpio -q
- Inicie ansi-term y use zsh
- Hacer ventana a pantalla completa
- Salida algo que llena la pantalla
- Tipo Cr
- El aviso estará fuera de la pantalla
¿Tal vez haya alguna forma de aumentar el espacio entre la salida y el minibúfer para compensar el exceso?
He intentado usar Zsh en mi sesión de emacs, sin reasignaciones de todas las claves de Zsh. Creo que el término ansi funciona bastante bien para esto, pero sigo teniendo algunos problemas. Estaba obteniendo muchos caracteres basura, pude arreglarlo con:
## Setup proper term information for emacs ansi-term mode
[[ $TERM == eterm-color ]] && export TERM=xterm
Pero todo aún no funciona a la perfección. Ahora estoy teniendo problemas con la salida fuera de la pantalla, especialmente cuando uso algo como Cr para la búsqueda.
Alguna idea. ¿Alguien más tiene Zsh + Ansi-term trabajando correctamente?
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 (shell Mx), ya que es mucho más natural con EMACS de todos modos.
Dicho esto, al leer el archivo term.el, parece que ansi-term está haciendo muchas maniobras propias. 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.
Me lo imaginé. Fue un problema de configuración de emacs. Este bit de elisp en mis .emacs lo estaba causando:
(custom-set-variables
''(fringe-mode nil nil (fringe))
''(fringes-outside-margins t t))
Gracias por la ayuda.
Pruebe MultiTerm .
Es el único modo de terminal Emacs que parece jugar 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 hace cd.
if [ -n "$INSIDE_EMACS" ]; then
chpwd() { print -P "/033AnSiTc %d" }
print -P "/033AnSiTu %n"
print -P "/033AnSiTc %d"
fi
Utilice Mr para buscar el historial de comandos en emacs, no en Cr
Estaba buscando esto también desde hace bastante tiempo. Para mí, agregando siguiente a la
;; 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")))
trabajos. 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 ese guión. Como una pantalla de bonificación adicional parece jugar muy bien con emacs para mí.