bash emacs ksh zsh ido-mode

¿Cómo puedo tener directorios de seguimiento de term.el(ansi-term) si uso anyhting que no sea bash?



emacs ksh (2)

Cuando se utiliza eshell o ansi-term y bash emacs, se cambia la variable del directorio por defecto en función del directorio en el que se encuentre.

Entonces, si me muevo a /home/user/code/project y luego uso ido-find-file para abrir un archivo, comienza ido con el CWD. Si uso ksh (mi shell normal) o zsh (probado para probar) no funciona. ¿Hay algún ajuste o solo es compatible con bash?

Gracias


Hay una serie de soluciones a este problema. Prefiero mi implementación que cambia el mensaje para que contenga la ruta actual, que Emacs reconoce y usa para obtener el comportamiento que desea. Además, mi solución oculta la parte del mensaje que contiene la ruta porque la encuentro fea.

Mi solución se puede encontrar en la publicación del blog: Emacs Tip # 25 Shell Dirtrack By Prompt .

Sin embargo, hay una serie de otras soluciones que se pueden encontrar en la Wiki de Emacs u otros lugares:


Pon esto en tu .zshrc:

chpwd() { print -P "/033AnSiTc %d" } print -P "/033AnSiTu %n" print -P "/033AnSiTc %d"

La función chpwd () se ejecuta cada vez que cambia la pwd. La línea que termina en% d es la que le permite rastrear el directorio actual; lo repito fuera de la función para asegurarme de que se ejecute cuando zsh se inicialice por primera vez. Pero Emacs requiere que primero le informemos quién es el usuario actual (la línea que termina en% n).

Esto en realidad se explica en term.el, que debe estar dentro de / usr / share / emacs // lisp, si está utilizando Ubuntu.

Espero que esto ayude.