¿Cómo puedo obtener Terminal.app en OS X para mostrar el directorio actual en su ventana o título de pestaña?
Estoy usando el bash shell.
                    
                        macos
                                bash
                                terminal
                                terminal.app
                                
                    
                    
                        kareman
fuente
                
                fuente

Respuestas:
Depende de tu caparazón.
Este artículo muestra varios métodos.
Personalmente uso zsh que tiene una conveniente función precmd () que se ejecuta antes de cada solicitud.
Aunque las otras preguntas enumeran los métodos bash, alias cd. Bash proporciona un método inherente que encadena solo la solicitud.
fuente
~/.profilearchivo (o equivalente) en la máquina remota.Copie y pegue en el archivo ~ / .profile:
PROMPT_COMMAND="echo -ne \"\033]0;${PWD##*/}\007\"; $PROMPT_COMMAND"Esto establecerá el título de la pestaña del terminal actual al nombre de la carpeta en la que se encuentra (NO a la ruta completa).
Entonces ... se
Developer/Applications/Utilities/Bluetooth/convierte en =>Bluetoothfuente
A partir de Mac OS X Lion 10.7, Terminal tiene una secuencia de escape explícita para configurar el directorio de trabajo, que Terminal muestra usando el ícono "proxy" de la ventana estándar. Esto le permite hacer Comando y hacer clic en él para ver la ruta, revelar en Finder o arrastrarlo como cualquier otra carpeta. Además, Terminal puede usar esto para crear otra terminal en el mismo directorio y restaurar el directorio de trabajo al salir / reiniciar Terminal (cuando Reanudar está habilitado). También permite restaurar directorios para grupos de ventanas.
Es la misma secuencia de escape del Comando del sistema operativo (OSC) que para los títulos de ventanas y pestañas, pero con el primer parámetro establecido en 7. El valor debe ser una URL "file:", que permite caracteres especiales de codificación porcentual para que pueda manejar Todos los nombres de ruta válidos. También debe incluir el nombre de host para que Terminal pueda determinar si se trata de un directorio local; Terminal evitará usarlo como el directorio de trabajo actual si es de un host diferente.
En una nota relacionada, Terminal de manera similar admite la configuración del "archivo representado" utilizando la secuencia de escape OSC con un parámetro de 6. Si está configurado, el icono del proxy mostrará esto en lugar del directorio de trabajo. Por ejemplo, tengo emacs y menos configurados para reflejar el archivo / búfer que se muestra actualmente en el icono del proxy. Esto permite que estos programas basados en tty se integren más con el sistema operativo circundante.
Los comportamientos del directorio de trabajo están habilitados de forma predeterminada para bash (el shell predeterminado en Mac OS X). Ver / etc / bashrc para el código relevante.
Probablemente también valga la pena mencionar que Lion Terminal ahora admite configurar el título de la pestaña independientemente del título de la ventana utilizando la secuencia de escape OSC.
fuente
update_terminal_cwdfunción establecerá el icono de proxy en el directorio de trabajo actual. Por defecto$PROMPT_COMMANDesupdate_terminal_cwd.Además de recomendarle que use la secuencia de escape del Comando del Sistema Operativo específico de Apple Terminal:
ESC ] Ps ; Pt BELwherePsis7andPtis afile:URL; Vale la pena agregar que en Mac OS X 10.11 (y probablemente desde 10.7) hay un archivo/etc/bashrc_Apple_Terminal(no editable bajo 10.11) que define lo convenienteupdate_terminal_cwd()como (sin los comentarios):También puede usar esto en sus cajas remotas, en caso de que esté pensando en hacerlo y luego rascarse la cabeza para codificar correctamente la URL del archivo en bash.
Y si cambias
PROMPT_COMMANDpor tu cuenta.bash_profileo.bashrcpuedes olvidarte de llamar a esto. En el mismo archivo muestran un ejemplo de encadenamiento un poco mejor con:Personalmente en mi
.bash_profilequería agregar el indicador git, así que hice esto:fuente
Las soluciones Bash que involucran PS1 y PROMPT_COMMAND fallan si el directorio tiene caracteres Unicode (al menos en Snow Leopard). La mejor solución que se me ocurrió fue hacer el equivalente de
Desafortunadamente, esto no funciona directamente, por lo que definí una función de shell para hacer la
trllamada:Esto funciona bien para los acentos latinos, que estarán en Unicode NFD (los acentos desaparecerán pero el carácter latino subyacente permanecerá).
Desafortunadamente, fallará por completo para cosas como el chino.
fuente
Suponiendo que está utilizando el Terminal MAC predeterminado, puede usar el siguiente en .profile ya que "set_prompt" por sí solo puede enviarlo a la carpeta raíz cuando abre una nueva pestaña:
fuente
Ingrese esto en su ~ / .profile o archivo equivalente:
La primera línea contiene dos caracteres especiales que no se pueden copiar / pegar, pero puede descargar el texto desde aquí: http://blog.nottoobadsoftware.com/files/setterminaltitle.sh .
fuente
echousoprintf, que le permite expresar esos caracteres (ESC y BEL / Control-G) con secuencias de escape:printf '\e]0;$@\a"