Kann Bash (oder ein Terminal) automatisch aus dem Inhalt des Terminal-Puffers vervollständigen?

4

Stellen Sie sich vor, ich habe eine Bash-Sitzung in einem Terminal, kurz nach einer Ausgabe:

$ grep foo *.txt
this.txt: something123 foo
$

Nehmen wir nach diesem Grep an, mein nächster Befehl würde something123als Argument dienen.

Gibt es Tools, mit denen ich das something123an der Eingabeaufforderung tab / automatisch vervollständigen kann ? dh Autocomplete Lesen aus dem letzten Terminal-Puffer?

Konkret: Ich möchte in der Lage sein, grepan der Eingabeaufforderung ein paar Zeichen von something123und den Rest von something123anzuzeigen, genau wie es wäre, wenn zB something123ein Name einer Datei im aktuellen Arbeitsverzeichnis wäre.

Bearbeiten: Ich verwende derzeit das Terminal von xfce4 (unter Arch Linux), bin aber offen für andere!

wodow
quelle

Antworten:

2

Sie könnten dies mit einem benutzerdefinierten Skript tun, aber soweit ich weiß, ist dieses Verhalten auf keinem System integriert - schon gar nicht mit Tabulatorvervollständigung.

Unter http://tldp.org/LDP/abs/html/tabexpansion.html finden Sie Anweisungen, wie Sie so etwas selbst codieren können. Warnung: Detaillierte Kenntnisse der Bash-Befehle sind erforderlich, wenn Sie sich dazu entschließen, diese selbst zu schreiben. Da Sie jedoch nur ein bestimmtes Grep ausführen möchten, dürfte dies nicht allzu schwierig sein.

allquixotic
quelle
Danke für diesen Hinweis. Ein verlockendes Nebenprojekt ... Ich nehme an, einige Terminals würden ihren aktuellen Scrollback-Puffer programmgesteuert zur Verfügung stellen (andere jedoch nicht.)
wodow
1

Sie sagen nicht, welches System Sie verwenden ...

iTerm2 unter Mac OS X erledigt dies mit dem Befehl +. Tastaturkürzel. Es ist nicht ganz so, als ob die Registerkarte vollständig ausgefüllt wäre (Sie müssen erst aus der GUI-Vervollständigungsliste des Terminals auswählen, bevor Tastendrücke an den zugrunde liegenden Prozess gesendet werden), aber Sie sparen sich trotzdem Tastatureingaben. Siehe http://www.iterm2.com/#/section/features/autocomplete .

Es würde mich wundern, wenn es für Unix nichts Ähnliches gäbe.

Diese Art von Verhalten lässt sich am einfachsten direkt unter Windows implementieren (ein Prozess mit einer Konsole kann auf seinen eigenen Scrollback-Puffer zugreifen), aber ich habe es trotzdem noch nie gesehen.

Tom Seddon
quelle
Danke für die Antwort! Ja, ich hätte klarer mit der Plattform umgehen sollen - jetzt als xfce4-Terminal unter Arch Linux hinzugefügt.
Wodow
Ich werde einen Blick auf die iTerm2-Entsprechungen werfen.
Wodow