Изпратете команда до всички прозорци в tmux

Това е начин за изпращане на една и съща команда до всички прозорци в tmux, а не до всички панели в прозореца. synchronize-panes - изпраща команда до всички панели в един прозорец. Имам нужда от нещо като "в" на екрана.


person vorand    schedule 12.02.2012    source източник


Отговори (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
comment
Това е страхотно - малко допълнение. Исках да направя същото, но да изпратя един и същ изход към всички панели във всеки прозорец. Прави се лесно с настройката synchronize-panes! - person dsummersl; 01.02.2013
comment
Можете също така да получите текущата сесия чрез команда: tmux display -p "#S" - person NgaNguyenDuy; 25.07.2016
comment
Ако искате действително да изпълните командата, добавете 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
comment
Вече нямам достъп до тази връзка - има ли нова? - person Blue Raspberry; 03.11.2020