2 votos

¿Por qué Terminal no respeta las preferencias?

En algún momento de la semana pasada mi Terminal dejó de respetar la configuración "Nuevas pestañas abiertas con: El mismo directorio de trabajo". Las pruebas con "Nuevas ventanas..." dieron el mismo resultado.

Mi shell es zsh.

He conseguido que esto funcione siguiendo una respuesta aquí de Dan Rosenstark https://apple.stackexchange.com/a/340778/398648

# http://superuser.com/a/315029/4952
# Set Apple Terminal.app to resume directory... still necessary 2018-10-26
if [[ $TERM_PROGRAM == "Apple_Terminal" ]] && [[ -z "$INSIDE_EMACS" ]] {
  function chpwd {
    local SEARCH=' '
    local REPLACE='%20'
    local PWD_URL="file://$HOSTNAME${PWD//$SEARCH/$REPLACE}"
    printf '\e]7;%s\a' "$PWD_URL"
  }
  chpwd
}

Pero: No sé cómo podría haber determinado esto por mí mismo, o cómo podría haber depurado un problema similar .

Cualquier consejo o truco para averiguar cuáles son esos pasos iniciales de la Terminal sería muy apreciado.

Cosas que no han funcionado:

Otra información potencialmente útil:

  • Los ajustes "Mismo perfil"/"Perfil por defecto" se respetan cuando se cambian
  • Añadiendo pwd como la primera línea de .zshrc muestra que el directorio ya está /home/<myuser>
  • He instalado y desinstalado algunas herramientas y proyectos relacionados con nix recientemente (incluyendo nix-darwin )

Terminal Preferences

Metadatos:

OS        macOS Catalina 10.15.7 (19H2)
Terminal  2.10 (433)
zsh       5.7.1 (x86_64-apple-darwin19.0)

3voto

Marlon Richert Puntos 251

Si haces clic en "Secuencia de escape " en esa captura de pantalla, verás lo siguiente:

enter image description here

Sin embargo, lo que no se dice es que esto normalmente se resuelve en el archivo /etc/zshrc_Apple_Terminal que se llama desde /etc/zshrc . Hay varias cosas que pueden evitar /etc/zshrc_Apple_Terminal de ser llamado o que puede anular lo que intenta hacer:

  • Estás iniciando Zsh con zsh -d o zsh -f .
  • Tiene un archivo ${ZDOTDIR:-$HOME}/.zshenv o ${ZDOTDIR:-$HOME}/.zprofile en la que tiene setopt NO_rcs o setopt NO_globalrcs
  • El parámetro $TERM_PROGRAM no tiene el valor Apple_Terminal .
  • Zsh no tiene acceso de lectura a /etc/zshrc_Apple_Terminal .
  • Cuando /etc/zshrc_Apple_Terminal se obtiene, el parámetro $INSIDE_EMACS es distinto de cero.
  • Se define una función precmd en algún momento después de /etc/zshrc_Apple_Terminal que anula la definida por add-zsh-hook .

Lo que puedes hacer para depurar:

  • Inicie una subshell sin archivos de configuración no globales y vea si el error también ocurre allí:

    cd $(mktemp -d); HOME=$PWD ZDOTDIR=$PWD zsh

    Si el problema no se produce en este subshell, significa que el problema está en algún lugar de sus dotfiles no globales. Puede obtener una lista de estos archivos haciendo

    ls ${ZDOTDIR:-$HOME}/.z(log(in|out)|profile|sh(env|rc))(-^/)
  • Reinicia Zsh con exec zsh -vx y estudiar la salida desde el principio para ver si /etc/zshrc_Apple_Terminal y si algo más tarde anula el precmd enganche que se establece.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X