Zuvor gedruckten Text in einem Befehl verwenden

Zuvor gedruckten Text in einem Befehl verwenden

Oft verfüge ich über einen Terminalbefehl, der einige Befehlsvorschläge für die nächste Ausführung oder einen Dateipfad in einer mehrzeiligen Textausgabe ausgibt.

Ich möchte den Dateipfad oder den Befehl wiederverwenden können.

Z.B

$ nativefier --name "Asana Personal" "https://app.asana.com"
Packaging app for platform darwin x64 using electron v1.6.6
App built to /Users/Vaughan/Asana Personal-darwin-x64


$ cd /Users<press-tab>/Vaughan/Asana Personal-darwin-x64


$ brew info postgres
...
If builds of PostgreSQL 9 are failing and you have version 8.x installed,
you may need to remove the previous version first. See:
  https://github.com/Homebrew/legacy-homebrew/issues/2510

To migrate existing data from a previous major version (pre-9.0) of PostgreSQL, see:
  https://www.postgresql.org/docs/9.6/static/upgrading.html

To migrate existing data from a previous minor version (9.0-9.5) of PostgreSQL, see:
  https://www.postgresql.org/docs/9.6/static/pgupgrade.html

  You will need your previous PostgreSQL installation from brew to perform `pg_upgrade`.
  Do not run `brew cleanup postgresql` until you have performed the migration.

To have launchd start postgresql now and restart at login:
  brew services start postgresql
Or, if you don't want/need a background service you can just run:
  pg_ctl -D /usr/local/var/postgres start


$ pg ctl<press-tab>-D /usr/local/var/postgres start

Antwort1

Dies würde im Wesentlichen bedeuten, Ihre gesamten Terminalsitzungen zu protokollieren, um die gewünschten Informationen zu erfassen.

Dazu können Sie das Programm verwenden script(z. B. script /tmp/myuseronlyreadablefilein Ihr einfügen .zshrcoder Ihre Eingabeaufforderung erweitern, um scriptdiese eine Eingabezeile immer wieder auf dieselbe Protokolldatei anzuwenden und sie unmittelbar danach zu analysieren). Anschließend analysieren Sie die generierte Protokolldatei (Filterausgabe für alle Pfade) für ein Widget, das Sie für zsh automatische Vervollständigung.

Ich bin mir nicht sicher, welche Nachteile die Verwendung von 'Skript' haben kann und wie viel Aufwand dies für Sie im Vergleich zum guten alten 'Markieren Sie einen beliebigen Text mit der Maus und fügen Sie ihn einfach sofort mit einem Klick auf mein Mausrad ein'-Funktionalität.

Antwort2

Terminal-Multiplexer wie tmuxund screenunterstützen das Kopieren und Einfügen aus der Sitzung. Wenn Sie dies jedoch ohne einen solchen oder automatisch tun möchten, können Sie teedie Ausgabe an eine temporäre Datei senden und und/oder verwenden cut, um den besagten Befehl zu erstellen (und dann auszuführen).sedgrep

Da Sie jedoch anscheinend OSX verwenden, können Sie einfach Text markieren und ⌘C zum Kopieren und ⌘V zum Einfügen drücken. (Es sei denn, Sie sind sshangemeldet.)

verwandte Informationen