vim
hat ein wirklich nettes Feature, das es in seinen Pfaden nutzt, wenn sie etwas lang sind:
Es verkürzt den Pfad zum Dokument auf der Registerkarte oben. Gibt es eine Möglichkeit, etwas Ähnliches zu tun, so dass meine Bash-Eingabeaufforderung nicht so aussieht:
rfkrocktk@work-laptop ~/Documents/Projects/Work/maventest/src/main/java/com/tkassembled/ $
rfkrocktk@work-laptop ~/D/P/W/m/src/main/java/com/tkassembled/ $
? Idealerweise einen Schwellenwert für die maximale Länge der Eingabeaufforderung verwenden?Antworten:
Versuchen Sie dies :
oder, pure bash:
dann
produziert (beachte das
~
für${HOME}
):Ich habe meine Antwort dank @ enzotib's verbessert
quelle
$PWD
→~
Test genauer ansehen . Derzeit, wennHOME
ist/home/ed
undPWD
ist/home/edwina
, erhalten Sie~wina
in der Perl-Version und~/ina
in der Shell-Version. (2) Ihr Shell-Code drosselt, wenn das aktuelle Verzeichnis Platzhalterzeichen (dh Pfadnamenerweiterungszeichen) enthält. zBPWD
=/abc/*/def
. Sie können dies beheben, indem Sieset -o noglob
oder hinzufügenset -f
. … (Fortsetzung)$HOME
(der in doppelten Anführungszeichen steht) und$PWD
sind gut genug. In dem Shell - Befehl, die letzten drei Shell - Variablenreferenzen sind in Ordnung, aber die ersten drei sein können"${PWD#$HOME}"
,"$PWD"
und"$p"
. (4) Siehe auch die Antwort von mbentley und meine Kommentare dazu.Ähnlich wie @nicerobot, aber etwas kürzer:
Dies zeigt die folgende Beispielausgabe:
quelle
Ich mag
PROMPT_DIRTRIM
in bash ...Ändert die Eingabeaufforderung Ihres Beispiels in ...
Für mich geht das.
quelle
Das folgende Snippet ergänzt die Antwort von enzotib :
/Path/To/Your/Home/
nach~/
(so wird ein Pfad~/a/b/c
statt/P/T/Y/H/a/b/c
)Verwenden Sie den ersten Buchstaben einer Punktdatei, anstatt nur den Punkt anzuzeigen (
/a/./c/d
wird zu/a/.b/c/d
):Stellen Sie sicher, dass Sie einfache Anführungszeichen verwenden, da diese sonst vorzeitig erweitert werden.
quelle
Das Format für die Verwendung in Ihrem
PS1
ist\W
(siehePROMPTING
Abschnitt in derbash
Manpage).Und wenn Sie die anderen Optionen dort lesen möchten, können Sie einige coole Dinge mit Ihrer Befehlszeile tun.
quelle
Ich liebe die Ausgabe von Nicerobots Beispiel, aber ich habe ein Problem gefunden. Ich habe ein Verzeichnis mit einem Bindestrich
A-E
und es wurde-E
als Argument dafür angesehen,printf
wann es mein aktuelles Arbeitsverzeichnis war. Um dieses Problem zu beheben, habe ich--
den letztenprintf
hinzugefügt und Anführungszeichen um die Ausgabe hinzugefügt, falls nichts auszugeben ist:quelle
-
als zweites Zeichen enthält. Während es wahr ist, dass dies--
die allgemeine Lösung für das Problem der Argumente ist, die mit beginnen-
, ist es eine bessere Methode , diesprintf
zu sagenprintf "%s" "${q:1}"
, da dies auch vor Argumenten schützt, die enthalten%
. (Versuchen Sie zum BeispielPWD
=/home/mbentley/Documents/Projects/Work/maventest/src/main/java/com/abc%def
. (2) Siehe auch meine Kommentare zur Antwort von nicerobot.