vim
tiene una característica realmente agradable que utiliza en sus rutas cuando son un poco largas:
Abrevia la ruta al documento en la pestaña en la parte superior. ¿Hay alguna manera de hacer algo similar a esto para que mi bash prompt no se vea así?
rfkrocktk@work-laptop ~/Documents/Projects/Work/maventest/src/main/java/com/tkassembled/ $
rfkrocktk@work-laptop ~/D/P/W/m/src/main/java/com/tkassembled/ $
? Idealmente, ¿usa algún umbral para la longitud máxima del indicador?Respuestas:
Intenta esto :
o, puro golpe:
luego
produce (observe el
~
para${HOME}
):Mejoré mi respuesta gracias a @ enzotib's
fuente
$PWD
→~
. Actualmente, siHOME
es/home/ed
yPWD
es/home/edwina
, obtienes~wina
la versión Perl y~/ina
la versión shell. (2) Su código de shell se bloquea si el directorio actual contiene caracteres comodín (es decir, expansión de nombre de ruta); por ejemplo,PWD
=/abc/*/def
. Puede solucionar esto agregandoset -o noglob
oset -f
. … (Continúa)$HOME
(que está entre comillas dobles) y$PWD
son lo suficientemente buenos. En el comando de shell, las tres últimas referencias a variables de shell están bien, pero los tres primeros pueden ser"${PWD#$HOME}"
,"$PWD"
y"$p"
. (4) Véase también la respuesta de mbentley y mis comentarios al respecto.Similar a la respuesta @nicerobot, pero algo más corta:
Esto mostrará la siguiente salida de ejemplo:
fuente
Me gusta
PROMPT_DIRTRIM
en bash ...cambiará su solicitud de ejemplo a ...
Esto funciona para mi.
fuente
Agregando a la respuesta de enzotib , el siguiente fragmento será:
/Path/To/Your/Home/
a~/
(para que haya una ruta en~/a/b/c
lugar de/P/T/Y/H/a/b/c
)Use la primera letra de un 'archivo de puntos' en lugar de mostrar solo el punto (
/a/./c/d
se convertirá/a/.b/c/d
):Asegúrese de usar comillas simples o bash lo expandirá prematuramente.
fuente
El formato para usar en su
PS1
es\W
(consulte laPROMPTING
sección en labash
página del manual).Y es posible que desee leer las otras opciones allí, puede hacer algunas cosas interesantes con su línea de comando.
fuente
Me encanta la salida del ejemplo de nicerobot pero encontré un problema. Tengo un directorio que tiene un guión
A-E
, y lo veía-E
como un argumento deprintf
cuando era mi directorio de trabajo actual. Para solucionar esto, agregué--
las últimasprintf
comillas y agregué alrededor de la salida en caso de que no haya nada que mostrar:fuente
-
como segundo carácter. Si bien es cierto que esa--
es la solución general al problema de los argumentos-
, un mejor métodoprintf
es decirprintf "%s" "${q:1}"
, ya que esto también protege contra los argumentos que contienen%
. (Por ejemplo, intentePWD
=/home/mbentley/Documents/Projects/Work/maventest/src/main/java/com/abc%def
. (2) Vea también mis comentarios sobre la respuesta de nicerobot.