Shell-Konfiguration und Kommandozeilen-Werkzeuge¶
In diesem Kapitel möchte ich euch zwei mächtige Erweiterungen der Shell vorstellen:
Starship ist ein schnelles Tool, das ihr mit jeder Shell verwenden könnt.
Pipes (|)¶
Git verwendet nie less, wenn ihr die Ausgabe in ein anderes Programm umleitet, wie z.B.:
$ git log --oneline | grep Jupyter
Ihr könnt jedoch die Ausgabe wieder an less übergeben:
$ git log --oneline | grep Jupyter | less
delta¶
delta ist eine schicke Diff-Anzeige, siehe z.B.:
Installation¶
Die .deb-Dateien befinden sich auf der Release-Seite.
$ brew install git-delta
> choco install delta
Konfiguration¶
Eine Beispielkonfiguration findet ihr in Git config file:
[core]
pager = delta
[interactive]
diffFilter = delta --color-only
[delta]
navigate = true # use n and N to move between diff sections
[merge]
conflictstyle = zdiff3
delta erweitert jedoch nicht nur die Anzeige von git diff, sondern auch die
von git add --patch, git log --patch, git blame, git
rebase-Merge-Konflikten und git show. Zudem kann delta auch Side-by-Side-Diffs anzuzeigen , z.B.:
Ihr könnt dies auch global konfigurieren mit:
$ git config --global delta.side-by-side true
ripgrep¶
Installation¶
Ihr könnt ripgrep mit einer binären .deb-Datei installieren, die in
jedem ripgrep-Release
enthalten ist.
$ curl -LO https://github.com/BurntSushi/ripgrep/releases/download/14.1.0/ripgrep_14.1.0-1_amd64.deb
$ sudo dpkg -i ripgrep_14.1.0-1_amd64.deb
$ brew install ripgrep
> choco install ripgrep
Siehe auch
Beispiele¶
Bemerkung
Das Paket heißt zwar ripgrep, der Befehl ist jedoch rg.
$ rg PATTERNsucht nach Regexen, wobei ihr oft Anführungszeichen verwenden solltet, um zu verhindern, dass die Shell Sonderzeichen interpretiert.
$ rg PATTERN FILENAMESbeschränkt die Suche auf bestimmte Dateien, indem ihr sie nach dem Mustern benennt.
$ rg -g|--glob PATTERNfiltert Dateien nach sog. Globbing-Mustern.
$ rg -t SUFFIX PATTERNsucht nach Dateien mit bestimmten Dateiendungen.
Mit
rg --type-listerhaltet ihr alle möglichen Dateiendungen.$ rg -i|--ignore-case PATTERNignoriert die Groß- und Kleinschreibung.
$ rg --hyperlink-format EDITOR PATTERNerstellt Dateipfade als Terminal-Hyperlinks, die bei gedrückter Strg- oder ⌘-Taste geöffnet werden können. Mögliche Editoren erhaltet ihr mit
man rg.$ rg --no-ignore PATTERN,$ rg -.|--hidden -.PATTERN,$ rg --binary PATTERNoder$ rg -u |--unrestricted PATTERNzeigt auch Ergebnisse in Dateien an, die durch
.gitignore-Anweisungen, durch.versteckte Dateien oder binäre Dateien üblicherweise ausgefiltert werden.Tipp
$ rg -.|--hidden -.PATTERNzeigt euch auch Ergebnisse im.git-Verzeichnis an. Um dieses Verzeichnis von der Suche auszunehmen, könnt ihr dieses Verzeichnis Mit der Option-g|--globund einem!ausschließen, alsorg -. -g '!.git' PATTERN.
Konfiguration¶
Ihr könnt eine Konfigurationsdatei für ripgrep anlegen in
~/.config/ripgreprc, z.B.:
--hyperlink-format
default
--smart-case
--hidden
--glob
!.git
Anschließend könnt ihr die RIPGREP_CONFIG_PATH-Umgebungsvariable definieren
mit
$ export RIPGREP_CONFIG_PATH=~/.config/ripgreprc