Auf zum besseren Terminal

Eigentlich erstaunlich wie lange ich mich nicht mehr ernsthaft mit der Optimierung des so alltäglichen Werkzeuges Terminal.app beschäftigt habe. Und regelrecht lustig ist, das wir dann mehr oder minder zur selben Zeit damit angefangen haben ;-) Hier mein bisheriges Ergebnis und ein bisschen etwas zum Weg dahin.

Es begann mit einem klassischen Bash-Problem. Endete die SSH Session auf meinem RPI unerwartet, wurde die Befehlshistorie nicht geschrieben. Auch konnte es bei zwei oder mehr gleichzeitigen Sessions zu einer Race-Condition kommen, die dann nur eine der beiden Historien sicherte. Zwar ließen sich diese Probleme in den Griff bekommen aber nachdem ich einmal näher hingesehen hatte wollte ich gleich noch ein paar andere Sachen optimieren. Nicht lang und ich fand eine tolle Präsentation für Bash Power User. Nachdem ich mir dann aufwändig die für mich optimale .basrc, .inputrc Kombination gebastelt hatte, stieß ich auf die ZSH und Prezto. Hatte ich von der ZSH als Bash Alternative schon gelesen, war Prezto dann schon eine ziemliche Offenbarung.

Was besser geht – Top III

  1. Befehlshistorie mit den Pfeiltasten durchwandern: Bash sucht nach Einträgen, die mit exakt derselben Zeichenfolge beginnen. Prezto sucht jedoch im Volltext. Es ist also egal an welchen Teil der Befehlsfolge Du Dich erinnerst -Prezto findet den Eintrag.
  2. Pfad per TAB ergänzen: Kann bash entweder eine Liste der möglichen Varianten anzeigen oder per TAB durch die Varianten iterieren, ergänzt Prezto beides intelligent.
  3. Tippfehler: Prezto macht Vorschläge was Du vielleicht mit Deiner Eingabe gemeint haben könntest, während die bash nur „command not found“ anzeigt. Mit dem entsprechenden Setup kann Prezto auch in Homebrew oder Pacman Repositories  nach Paketen suchen die den Befehl auflösen könnten.

Installation (Linux)

Prezto’s Github Seite erklärt alles notwendige. Wichtig ist nur: „git“ muss installiert sein und die Prezto‘ Github Seite angegebenen Befehle funktionieren nur in der ZSH (ich hab’s ausprobiert :-).

Die folgenden Module habe ich aktiviert:

~/.zpreztorc
zstyle ':prezto:load' pmodule \
 'environment' \
 'terminal' \
 'editor' \
 'history' \
 'directory' \
 'spectrum' \
 'utility' \
 'completion' \
 'command-not-found' \
 'pacman' \
 'syntax-highlighting' \
 'history-substring-search' \
 'prompt'

Für jedes lohnt sich ein Blick auf die Prezto Dokumentation zwecks besserem Verständnis der Funktionsweise. Für das Module command-not-found muss unter ARCH noch das Paket „pkgfile“ installiert werden.

Installation (Mac)

Mac OS bring die ZSH mit -jedoch in einer alten Version. Empfehlenswert ist ein Update via Homebrew. Anschliessend muss in der Terminal-App (oder iterm) noch der Pfad zur „Homebrew“-zsh binary angepasst werden (siehe Bilderstrecke).

Hier meine Module für Mac OS:

zstyle ':prezto:load' pmodule \
 'environment' \
 'terminal' \
 'editor' \
 'history' \
 'directory' \
 'spectrum' \
 'utility' \
 'node' \
 'git' \
 'osx' \
 'completion' \
 'homebrew' \
 'syntax-highlighting' \
 'history-substring-search' \
 'prompt'

Es bieten sich auch noch ein paar weitere Einstellungsänderungen am Terminal an:

  1. Shells öffnen mit Befehl anstelle der „login shell“: geht schneller. Hier dann die zsh eintragen.
  2. Text: Schrift: „Source Code Pro Extra Light“ 15 pt.: sieht besser aus, muss aber auf dem System installiert sein
  3. Fenster: Größe: 120*30: juhu ein größeres Fenster :-)
  4. Tastatur „Wahltaste als Meta-Taste verwenden“: so schön es wäre bspw. „ALT+.“ einzugeben um die letzte Option zu wiederholen.. es funktioniert leider nicht. Zeichen wie „|“ lassen sich nicht mehr eingeben ist die Option aktiv. Somit bleibt die Option deaktiviert und wir drücken weiter „ESC+.“.
  5. Erweitert: Glocke: Visueller Effekt: Das Gebimmel hat mich schon immer genervt..

2 Kommentare

Schreibe einen Kommentar