Это способ отправить одну и ту же команду во все окна в tmux, а не во все панели в окне. synchronize-panes - отправить команду на все панели в одном окне. Мне нужно что-то вроде «at» на экране.
Отправить команду во все окна в tmux
Ответы (2)
Вы всегда можете сделать что-то вроде этого:
session=mysession
message="hello world"
tmux list-windows -t $session|cut -d: -f1|xargs -I{} tmux send-keys -t $session:{} $message
Вы также можете привязать это к ключу в вашем tmux.conf следующим образом:
bind C-e command-prompt -p "session?,message?" "run-shell \"tmux list-windows -t %1 \| cut -d: -f1\|xargs -I\{\} tmux send-keys -t %1:\{\} %2\""
person
Alex Gaudio
schedule
06.05.2012
Это здорово - небольшое дополнение. Я хотел сделать то же самое, но отправить один и тот же вывод на все панели в каждом окне. Легко сделать с настройкой
synchronize-panes
!
- person dsummersl; 01.02.2013
Вы также можете получить текущую сессию командой:
tmux display -p "#S"
- person NgaNguyenDuy; 25.07.2016
Если вы действительно хотите выполнить команду, добавьте
Enter
к приведенной выше команде. Но тогда он удалит пробелы в сообщении. Вы можете создать такую функцию для работы с этими точками: function keys { tmux list-windows -t $session|cut -d: -f1|xargs -I{} tmux send-keys -t $session:{} "$@" Enter}
. См. этот вопрос и этот вопрос соответственно, чтобы узнать больше. Но приведенное ниже решение github более тщательное!
- person Blue Raspberry; 01.11.2018
Вы можете сделать что-то вроде этого: https://gist.github.com/2773454
Но это выполняется для каждой панели, но вы можете соответствующим образом настроить.
Все зависит от того, чего вы пытаетесь достичь, например, то, что я хочу сделать, - это источник ~/.zsh во всех панелях.
person
DebugXYZ
schedule
23.05.2012
Я больше не могу получить доступ к этой ссылке - есть ли новая?
- person Blue Raspberry; 03.11.2020