Использовать ранее напечатанный текст в команде

Использовать ранее напечатанный текст в команде

Часто у меня есть команда терминала, которая выводит некоторые предлагаемые команды для выполнения следующими или путь к файлу среди многострочного текстового вывода.

Я хочу иметь возможность повторно использовать путь к файлу или команду.

Например

$ 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

решение1

По сути, это будет означать регистрацию всех сеансов работы с терминалом для сбора необходимой вам информации.

Для этого вы можете использовать программу script(например, поместить script /tmp/myuseronlyreadablefileв свой .zshrc, или улучшить приглашение к использованиюscript эту одну строку ввода в одном и том же файле журнала снова и снова, анализируя ее сразу после этого), а затем вы можете проанализировать сгенерированный файл журнала (отфильтровать вывод для всех путей) для виджета, который вы установили для автодополнение zsh.

Я не уверен, какие недостатки может иметь использование «скрипта» и сколько усилий это потребует от вас по сравнению со старым добрым «отметьте любой текст мышкой и просто вставьте его немедленно, щелкнув колесиком мышифункциональность.

решение2

Терминальные мультиплексоры, такие как tmuxи , screenподдерживают копирование и вставку из сеанса, но если вы хотите сделать это без них или автоматически, вы можете использовать , teeчтобы отправить вывод во временный файл, и использовать cut, sedи/или , grepчтобы построить (а затем запустить) указанную команду.

Однако, поскольку вы, судя по всему, используете OSX, вы можете просто выделить текст и нажать ⌘C для копирования и ⌘V для вставки. (Если вы не sshв теме)

Связанный контент