Допустим, у меня есть окно tmux
с 3 панелями , на каждом терминале на другом компьютере, и я хочу настроить их IP-адрес следующим образом:
`$ ifconfig eth0 192.168.0.<pane_number>
Обычно я синхронизирую панели, чтобы писать на них одновременно, поэтому я хотел бы нажать какую-нибудь комбинацию клавиш и затем вставьте конкретный номер панели на каждую панель (вставьте 0 на панели 0, 1 на панели 1 ...)
Есть ли такие вещи?
Возможно, есть более простой метод, но он работает. Введите свой ~ / .tmux.conf
, например,
bind-key m run-shell 'v=#D; tmux send-keys ${v#%}'
. Затем введите C-b m
, чтобы вставить номер панели. #D
заменяется на % 0
для панели 0 и так далее. $ {v #%}
предназначен для удаления части %
, предполагающей оболочку bash. Для привязки к ключу без необходимости C-b
, например, для C-o
, используйте bind-key -n C-o ...
.
Чтобы иметь разные номера на каждой панели при синхронизации, вам необходимо временно отключить синхронизацию, отправить символ на каждую панель и восстановить синхронизацию.
Вот сценарий bash, скажем mytmux
, вы можете ввести свой PATH и позвонить из своего ~ / .tmuxrc
.
#!/bin/bash
# tmux helper. http://unix.stackexchange.com/a/325816/119298
if [[ $(tmux show-window-option synchronize-panes) == *on ]]
then tmux set-window-option -q synchronize-panes off
restore="tmux set-window-option -q synchronize-panes on"
fi
tmux list-panes -F '#{window_index} #{pane_index}' |
while read winid pane
do tmux send-keys -t $winid.$pane $pane
done
$restore
Затем вы можете настроить привязку для C-b n
в своей конфигурации:
bind-key n run-shell "mytmux"