¿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
~/.profile
archivo (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 =>Bluetooth
fuente
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_cwd
función establecerá el icono de proxy en el directorio de trabajo actual. Por defecto$PROMPT_COMMAND
esupdate_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 BEL
wherePs
is7
andPt
is 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_COMMAND
por tu cuenta.bash_profile
o.bashrc
puedes olvidarte de llamar a esto. En el mismo archivo muestran un ejemplo de encadenamiento un poco mejor con:Personalmente en mi
.bash_profile
querí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
tr
llamada: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
echo
usoprintf
, que le permite expresar esos caracteres (ESC y BEL / Control-G) con secuencias de escape:printf '\e]0;$@\a"