Utilizo el Terminal Mac con un puñado de pestañas asignadas a un directorio de trabajo diferente. Lo configuré para abrir nuevas ventanas con el mismo directorio de trabajo. Sin embargo, cuando salgo de Terminal y lo reinicio, reconstruye todas las pestañas, sus nombres, incluso me muestra el último resultado en la ventana, pero permanece en el directorio de inicio del usuario y no restaura el último directorio de trabajo de cada pestaña.
¿Qué estoy haciendo mal? ¿Puede esto ser causado por algún ajuste en el ~/.bash_profile
?
Respuestas:
(Como referencia, estamos hablando de la función de Reanudar de Mac OS X Lion 10.7 y posterior).
Terminal restaura automáticamente el directorio de trabajo si está utilizando el shell predeterminado, bash. Si está utilizando otro shell, necesitará adaptar el código
/etc/bashrc
para enviar una secuencia de escape para comunicar el directorio de trabajo a la Terminal para que pueda restaurar el directorio más tarde para Reanudar. Si está usando zsh, vea mi respuesta para Reanudar Zsh-Terminal (OS X Lion) , en el que incluyo el código apropiado para zsh.Si tiene una costumbre
~/.bash_profile
o~/.bashrc
puede que necesite asegurarse de no deshacer el comportamiento predeterminado modificando/etc/bashrc
las personalizaciones. En particular, establece laPROMPT_COMMAND
variable de entorno para enviar la secuencia de escape en cada solicitud. Si personaliza esa variable, deberá prefijar o agregar su código al valor actual, por ejemplo:Además, en general,
~/.bash_profile
debe ejecutar~/.bashrc
:fuente
.bashrc
(aunque no pude detectar ninguna personalización de comando rápido. Ahora hago lo siguiente: 1. Abra una nueva ventana de Terminal (se abre en el directorio de inicio de mi usuario) 2. Documentos de CD 3. Salga de la Terminal 4. Abra la Terminal 5 La ventana se vuelve a abrir mostrando la salida de cambio de directorio pero aún se encuentra en el directorio de inicio del usuario.~/.bash_profile
,~/.bash_login
y~/.profile
.~/.bashrc
según su sugerencia en su respuesta./etc/bashrc
parece haber sido modificado por un script de instalación o lo que sea. Hubo una/etc/bashrc.orig
que contenía alguna configuración adicional (que supongo que es la configuración original) gist.github.com/3273170 . Vuelva a agregar eso a las/etc/bashrc
cosas hechas funcionando como se esperaba nuevamente. Muchas gracias por ayuda y paciencia!Si está utilizando Bash-It, puede encontrarse con el problema de
$PROMPT_COMMAND
ser sobrescrito por él.Como se mencionó, OS X lo utiliza para restaurar cwd en nuevas pestañas. Bash debería agregar valores, no anularlos.
Pero una solución alternativa por ahora sería agregar la siguiente línea a su
~/.bash_profile
Para obtener más información, consulte el rastreador de problemas para actualizaciones: https://github.com/revans/bash-it/issues/240
Y la referencia de Apple para ello https://developer.apple.com/library/mac/documentation/darwin/reference/manpages/man1/sh.1.html
fuente
Escribí una publicación de blog sobre cómo hacer esto para csh / tcsh antes de descubrir esta respuesta; Si alguien más viene aquí buscando una solución para esos proyectiles, aquí está:
Agregue eso a su
.cshrc
o.tcshrc
según corresponda. (La declaración if externa es necesaria para evitar un error al iniciar sesión de forma remota, como con ssh. Tiene que ser una declaración separada debido a las reglas de expansión variable en tcsh).Al igual que el soporte de bash incorporado de Apple, esta solución no utiliza ningún programa externo que no sea
printf
, a costa de solo escapar de espacios. Si necesita escapar de otros personajes especiales, tendrá que trabajar un poco más para encontrar una solución más completa.fuente