Wie kann ich eine Liste meiner Git-Aliase ausgeben, d. h. etwas, das der Bash alias
Befehl?
Antworten
Zu viele Anzeigen?Mir gefällt die Antwort von @Thomas, und ich nehme einige Änderungen vor.
Merkmale:
- Farbe hinzufügen
- und Eingabeparameter: damit der Benutzer den Befehl auswählen kann (aus
git config --get-regexp ^.
) -
Filter hinzufügen
.gitconfig
[alias] show-cmd = "!f() { \ sep="" ;\ name=${1:-alias};\ echo -n -e '\033[48;2;255;255;01m' ;\ echo -n -e '\033[38;2;255;0;01m' ;\ echo "$name"; \ echo -n -e '\033[m' ;\ git config --get-regexp ^$name\..*$2+ | \ cut -c 1-40 | \ sed -e s/^$name.// \ -e s/\ /\ $(printf $sep)--\>\ / | \ column -t -s $(printf $sep) | \ sort -k 1 ;\ }; f"
ANWENDUNG
git show-cmd
Listenaliasgit show-cmd "" st
Listenalias und sollte die Zeichenfolgest
git show-cmd i18n
anzeigeni18n
Einstellunggit show-cmd core editor
anzeigencore
Einstellung, und sie sollte enthalteneditor
DEMO
Es funktioniert auch unter Windows einwandfrei.
Erläuterung
-
können Sie das lange Skript auf
.gitconfig
verwenden Sie die nachstehende Syntax:[alias] your-cmd = "!f() { \ \ }; f"
-
name=${1:-alias}
gleich wiename = $1 if $1 else -alias
-
echo -n -e
(mehr sehen echo )- -n = Keinen abschließenden Zeilenumbruch ausgeben.
- -e Aktiviert die Interpretation der folgenden Backslash-escaped
-
'\\033[38;2;255;0;01m'
(mehr sehen SGR-Parameter )\\033[48;
: 48 bedeutet Hintergrundfarbe.\\033[38;2;255;0;0m
: 38 bedeutet Vorderfarbe. 255;0;0 = Rot
-
cut -c 1-40
Um zu vermeiden, dass Ihr Befehl zu lang ist, nehmen Sie nur 40 Zeichen. -
sed -e 's/be_replace_string/new_string/'
String durch einen neuen String ersetzen. (wenn Sie das Sonderzeichen (wie z.B.space
,>
...) sollte hinzufügen\\
als Präfix. -
column -t -s $(printf $sep)
formatiert alle Zeilen in eine Tabelle mit gleichmäßigen Spaltenabständen. -
sort -k 1
sortiert alle Zeilen nach dem Wert in der ersten Spalte