Skip to content

Tip #20: Effektive Suche in der History

Jeder Shellnutzer wird die Tastenkombination Strg+R kennen. In der Standardkonfiguration sucht diese in der Liste aller eingegebenen Befehle nach der Kombination. Also beispielsweise könnte Strg+R und die Eingabe von ls folgendes ergeben:

jens@huehnersuppe:~/ > ls -lart /usr/share/doc/fr*
bck-i-search: ls_

In der zsh ab Version 4.3.9 kann man diese Suche auch mit Mustern ergänzen. Im Normalfall ist Strg+R an history-incremental-search-forward gebunden. Für die Suche nach Mustern musst du ein neues Keybinding anlegen oder das alte überschreiben:

jens@huehnersuppe:~/ > bindkey “^R” history-incremental-pattern-search-forward
jens@huehnersuppe:~/ > grep -ls -E foo /usr/src/linux/kernel.java
bck-i-search: ls*kerne_

Im obigen Beispiel wurde das alte Keybinding überschrieben und dann nach einem Ausdruck gesucht, der ls gefolgt von kerne enthält. Das Feature wird mir sicher viel Spass bereiten. ;-)

Trackbacks

Keine Trackbacks

Kommentare

Ansicht der Kommentare: Linear | Verschachtelt

LeSpocky am :

Ich habe history-incremental-pattern-search-forward eingetragen und mich gewundert, warum der bei Druck auf Strg+R nichts findet, also nicht tut, was ich erwarte. Der Grund ist der, dass Strg+R per default an history-incremental-search-backward gebunden ist, was der Beginn der Zeile mit bck-i-search auch nahelegt. Tippe ich das aber so ein wie oben beschrieben, sehe ich da fwd-i-search. Ich habe Dein Beispiel dann ein wenig abgeändert und folgendes in meiner ~/.zshrc eingetragen:

QUOTE:
autoload is-at-least
is-at-least 4.3.9 && bindkey “^R” history-incremental-pattern-search-backward


Danke für den Tipp, mit ein bisschen umbasteln ist das wirklich super. :-)

Jens Kubieziel am :

Hast recht. Vielleicht sollte ich die Beispiele vor dem Speichern nochmal durchtesten. :-)

Kommentar schreiben

Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
BBCode-Formatierung erlaubt
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.

Um maschinelle und automatische Übertragung von Spamkommentaren zu verhindern, bitte die Zeichenfolge im dargestellten Bild in der Eingabemaske eintragen. Nur wenn die Zeichenfolge richtig eingegeben wurde, kann der Kommentar angenommen werden. Bitte beachten Sie, dass Ihr Browser Cookies unterstützen muss, um dieses Verfahren anzuwenden.
CAPTCHA

Sie können [geshi lang=LANG][/lang] Tags verwenden um Quellcode abhängig von der gewählten Programmiersprache einzubinden
Formular-Optionen
cronjob