Я использую iTerm для запуска командной строки на моем Mac. Это в режиме, который я не узнаю

Ваше предположение:

fortune | tee >(?stdout?) | pbcopy

не будет работать, потому что вывод fortune будет записан в standard out дважды, поэтому вы удвоите вывод в pbcopy.

В OSX (и других системах, поддерживающих /dev/std{out,err,in}) вы можете проверить это:

$ echo 1 | tee /dev/stdout | sed 's/1/2/'
2
2

выведите 2 дважды вместо 1 и 2.

Вы должны использовать другие дескрипторы файлов, например, стандартную ошибку через /dev/stderr:

$ echo 1 | tee /dev/stderr | sed 's/1/2/'
1
2

или использовать tty для получения подключенного псевдотерминала:

$ echo 1 | tee "$(tty)" | sed 's/1/2/'
1
2

С установленными опциями zsh и multios вам вообще не понадобится tee:

$ echo 1 >/dev/stderr | sed 's/1/2/'
1
2
1
10.04.2019, 18:46
1 ответ

Это функция автозаполнения iTerm2 , которая активируется нажатием Command + ; .

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

Autocomplete

Commands in command history are also added to Autocomplete (Cmd-;). If Preferences>General>Save copy/paste history and command history to disk is enabled, then command history will be preserved across runs of iTerm2 (up to 200 commands per user/hostname).

Дополнительно...

Command Completion

iTerm2 will present command completion suggestions automatically when View>Auto Command Completion is selected.

2
27.01.2020, 23:30

Теги

Похожие вопросы