У меня есть различные инструменты для работы с tmux и историей, поэтому я могу отследить, что и где произошло (в какой именно панели, в частности).
Внутри моего zsh preexec я могу выводить (для моего собственного формата истории команд оболочки) различные фрагменты информации, которые я связываю с запускаемыми командами:
$TTY
покажет мне например/dev/pts/34
$(tmux display -p "#{window_id} #D")
предоставляет мне например@4 %28
Даже если у меня есть только $TTY
, я могу использовать вывод
tmux list-panes -a -F '#{pane_tty} #{window_id} #D'
чтобы нанести его на карту.
Теперь я просто хотел этот рабочий процесс: я просматриваю свой журнал пользовательской истории и могу получить, @4 %28
но, похоже, мне нужно выполнить два tmux
вызова, чтобы фактически сфокусироваться на нужной панели. Мне нужно запустить
tmux select-window -t @4 && tmux select-pane -t %28
Просто интересно, есть ли более простой способ. tmux select-pane -t @4 %28
, или, на самом деле,select-pane
вероятнодолжен просто сфокусировать окно за меня?
решение1
В целом я доволен простотой tmux
интерфейса CLI... все, что select-pane
я сделаю, это просто выберу эту панель и оставлю окно и состояние сеанса в покое.
В своем вопросе я не учел последствий попытки «перейти» на определенную панель, если я подключен к другойсессия. Cli позволит мне изменять текущее окно и текущие панели любого сеанса по желанию, а также переключаться на любой сеанс. У нас просто нет дружественного интерфейса, чтобы делать все это безболезненно. (пример того, что это не безболезненно, это то, как выглядят идентификаторы сеансов, $2
поэтому вам придется указывать их в одинарных кавычках)