Я вижу команду `tmux send-keys`, но есть ли способ отправить вывод на соседнюю панель?

Я вижу команду `tmux send-keys`, но есть ли способ отправить вывод на соседнюю панель?

В сеансе tmux я пытаюсь выяснить, существует ли быстрый способ отправки некоторых выходных данных из одной панели в параллельную панель.

Например, если я нахожусь в левой панели (скажем, 0.0) и хочу отправить вывод команды pwdв правую панель (скажем, 0.1). Есть ли быстрый способ сделать это?

Заранее извиняюсь, если на этот вопрос есть ответ, но гуглил слишком долго, но ничего не нашел tmux send-keys -t right 'some text'.

Вместо этого я хочу отобразить вывод в соседней панели. Есть ли способ это сделать?

решение1

Я хочу отобразить вывод в соседней панели

Если вы знаете имя файла терминала, подключенного к другой панели (что ttyпечатает), вы можете записать в него. Пример:

pwd >/dev/pts/1

Но это толькоотображаетсимволы там; нет взаимодействия с любой программой, запущенной в панели. Вы использовали слово "отображение", но я не уверен, что это то, что вы хотите. Решение работает и без tmux.


Если вы хотите отправить вывод на стандартный ввод какой-либо команды, которую вы собираетесь вызвать в другой панели, используйте именованный канал:

mkfifo foo
pwd >foo

Теперь перейдите в другую оболочку (другую панель) и прочитайте foo:

<foo whatever

Это также не зависит от tmux.


Если вы хотите вставить вывод в другую панель (например, чтобы сделать его фрагментом новой команды в оболочке):

  1. Вызвать pwdкак обычно в исходной панели.
  2. Перейдите в режим копирования и скопируйте вывод. При поддержке мыши достаточно удерживать левую кнопку мыши и перетаскивать. После того, как вы отпустите кнопку, выбранный текст автоматически сохраняется в буфере.
  3. На целевую панель.
  4. Вставьте сохраненный текст с помощью paste-buffer( prefix]по умолчанию).

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