Ctrl+ rist ein großartiges kleines Tool zum Durchsuchen Ihrer .bash_history
zuvor ausgeführten Befehle.
Wenn ich es jedoch in meiner OS X Terminal.app verwende, sehe ich ein seltsames Verhalten und habe mich gefragt, ob jemand anderes dasselbe sieht oder weiß, wie man es behebt.
- Ctrl+r
- tippe so etwas ein
find
- oh cool, schau ... es ist der Befehl, den ich wollte
find . -exec grep -q "hello world" '{}' \; -print
- Ich möchte diesen Befehl ausführen, aber die Hallo Welt in etwas anderes ändern.
- Also habe ich ←oder getroffen→
- Jetzt ist der Befehl SORTA in der Befehlszeile, aber es sieht immer wie eine abgeschnittene Version des Befehls aus, wie folgt :
-q "blog_posts_by" '{}' \; -print
, wo sich der gesamte Befehl befindet, und ich kann die Cursortasten verwenden, um mich in der Zeile zu bewegen, aber nicht alle es wird gedruckt. Es besteht eine Trennung zwischen dem, was in der Zeile angezeigt wird, und dem, was das Terminal tatsächlich für mich bearbeitet.
Hat jemand eine Ahnung, warum dies passieren könnte? Es ist kein leichtes Phänomen, die Websites zu durchsuchen.
Antworten:
Sie haben wahrscheinlich Escape-Sequenzen für Farben in Ihrer Eingabeaufforderung, die nicht richtig abgegrenzt sind. Sie müssen eingeschlossen werden in
\[
und\]
.Die Länge nicht druckbarer Zeichenfolgen ist nicht in der Länge der Eingabeaufforderung enthalten, wenn sie eingeschlossen sind, und die Position vorheriger Befehle muss für eine ordnungsgemäße Anzeige beim Umbruch berechnet werden.
quelle
PS1
, aber nicht wieder nach dem Newline-Zeichen innerhalb.Dies könnte an der Art und Weise liegen, wie die Escape-Tasten auf Ihrem Terminal konfiguriert sind. Normalerweise verwende ich den linken oder rechten Pfeil auf iTerm oder Terminal.app, da ich kein Fan davon bin, sofort auf Return zu klicken. Funktioniert das für Sie? ?
quelle
Eine andere mögliche Ursache für dieses Problem ist der falsche
TERM
Wert. Dies ist mir zum Beispiel passiert, als ich Farben in meiner PS1 verwendet habe, aber meineTERM
war auf eingestelltxterm
. Ich habe es geändertxterm-256color
und dann hat STRG-r wieder richtig funktioniert.quelle