Mi terminal tiene un formato de solicitud predeterminado como este:
username @ boxname / path / to / current / directory $
El código que lo produce tiene este aspecto: (también tiene algunas definiciones de color)
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[01;34m\] \w \$\[\033[00m\]'
Si la ruta al directorio actual se alarga demasiado, resulta desagradable trabajar con el terminal porque constantemente se interrumpen las líneas. En tales casos, preferiría un formato que produzca una cadena más corta como esta:
username @ boxname current_dir_name $
El código que lo produce se vería así (de nuevo con color):
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[01;34m\] $(basename ${PWD}) \$ \[\033[00m\]'
¿Alguien sabe cómo podría alternar fácilmente el formato de la ventana de terminal actual de un estilo a otro simplemente escribiendo, por ejemplo prompttoggle:?
bash
gnome-terminal
Rotareti
fuente
fuente

PROMPT_DIRTRIM=0yPROMPT_DIRTRIM=1parece más simple que alternar entre diferentes valores paraPS1y el resultado es casi el mismo. Gracias por la info!PROMPT_DIRTRIMuno también podría agregar argumentos al comando. Si pasa ningún argumento alternar entrePROMPT_DIRTRIM=0yPROMPT_DIRTRIM=1y si pasa un número como argumento se establecePROMPT_DIRTRIMa ella.promptlensería un nombre más apropiado para el comando entonces.Respuestas:
Almacene sus
PS1variables largas y cortas con un nombre diferente:Asegúrese de establecer
PS1uno de ellos inicialmente:Luego puede hacer un alias como este para alternar entre los dos valores de PS1:
Agregar las cuatro líneas a su
~/.bashrcarchivo tendrá el comando disponible en sus sesiones de Bash, aquí están nuevamente para facilitar la copia:fuente
Puedes usar una pequeña
bashfunción:La función anterior coincide si la corriente
$PS1contienebasename, en caso afirmativo, se establece elPS1sin; debasenamelo contrario, se establece el quebasenametienePonga la función en su
~/.bashrcpara que esté disponible en todas las sesiones interactivas.Ejemplo:
fuente
O ... haz dos funciones muy pequeñas y agrégalas al final de tu
~/.bashrcpara una solicitud abreviada, escriba
promptshort, para volver a la ruta completa, escribapromptlong\Wmuestra el directorio de trabajo actual solo así que$(basename ${PWD})es excesivo en mi humilde opiniónPodría combinarse en una función, pero "largo" y "corto" son descriptivos y ambos tienen menos pulsaciones de teclas que "alternar";)
En lugar de agregar una línea para anular PS1, prefiero ajustar el código que lo establece (por ejemplo, descomentar
force_color_prompt=yesy editar la línea después[ "$color_prompt" = yes ]; then)fuente
Aquí hay una
~/.bashrcdefinición de función que yo personalmente uso para restablecer / alternar mi solicitud de solicitud regular a solo$. Adaptarlo según sea necesario para satisfacer sus necesidades.fuente
Esta es una respuesta a su problema (los directorios largos rompen la línea de comando) y no específicamente a su pregunta (cómo cambiar el símbolo del sistema sobre la marcha).
Resolví este problema hace años con este mensaje:
Qué hace esto:
Esto le brinda todo el espacio que necesita para su comando, no lo desplaza correctamente cuando se encuentra en una estructura de directorio profunda, no estropea la línea de mecanografía con códigos de color (evitando errores extraños que a veces suceden), mientras le da el color Indique dónde terminó la salida de un comando y comenzó el siguiente:
fuente