Shell-Konfiguration und Kommandozeilen-Werkzeuge

In diesem Kapitel möchte ich euch zwei mächtige Erweiterungen der Shell vorstellen:

oh-my-zsh kann für die Z Shell verwendet werden.

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.:

Schicke Diff-Anzeige mit delta

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.:

Side-by-Side-Diffs mit delta

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 PATTERN

sucht nach Regexen, wobei ihr oft Anführungszeichen verwenden solltet, um zu verhindern, dass die Shell Sonderzeichen interpretiert.

$ rg PATTERN FILENAMES

beschränkt die Suche auf bestimmte Dateien, indem ihr sie nach dem Mustern benennt.

$ rg -g|--glob PATTERN

filtert Dateien nach sog. Globbing-Mustern.

$ rg -t SUFFIX PATTERN

sucht nach Dateien mit bestimmten Dateiendungen.

Mit rg --type-list erhaltet ihr alle möglichen Dateiendungen.

$ rg -i|--ignore-case PATTERN

ignoriert die Groß- und Kleinschreibung.

$ rg --hyperlink-format EDITOR PATTERN

erstellt 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 PATTERN oder $ rg -u |--unrestricted PATTERN

zeigt auch Ergebnisse in Dateien an, die durch .gitignore-Anweisungen, durch . versteckte Dateien oder binäre Dateien üblicherweise ausgefiltert werden.

Tipp

$ rg -.|--hidden -.PATTERN zeigt euch auch Ergebnisse im .git-Verzeichnis an. Um dieses Verzeichnis von der Suche auszunehmen, könnt ihr dieses Verzeichnis Mit der Option -g|--glob und einem ! ausschließen, also rg -. -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