TL; DR: используйте #{pane_current_path}
с оператором if в вашей привязке.
AFAICT, нет способа получить функцию tmux для получения ввода.Хотя можно связать команды tmux для использования переменных, например,
bind-key C-t display-message "words and $bash_environment_variable"
, проблема в том, что tmux проверяет только среду, из которой вы запустили tmux для этой переменной, а не среду текущей панели, поэтому вы должнынеобходимо отсоединиться от tmux, установить переменную, заново установить tmux и повторно набрать .tmux.conf
, чтобы это работало.
Единственное, о чем я могу думать, это если вы находитесь в этом каталоге, когда вам нужнопостроить, имея tmux проверить путь текущей панели.Вы можете сделать что-то вроде
bind-key b if-shell '[[ #{pane_current_path} =~ /path/to/projA' '<build projA>' 'if shell projB' ...
см. здесь для примера того, как правильно делать множественные операторы if (операторы if-elif бедняка) в tmux.
Если вы все настроите правильно, возможно, можно будет избежать части if-shell и просто # {pane_current_path} как часть пути для команды сборки.
Кроме того, вы можете использовать текущую нижнюю панельпанель и целенаправленно выберите верхнюю панель в вашей команде tmux.Вот пример:
tmux send-keys -t sess:0.2 'sudo htop' Enter
где - имя сеанса, <0> - номер окна (0-индексированный, если вы его не изменили), а <2> - номер панели (также нуля и индексированныйидет влево-> вправо вверх-> снизу, как и следовало ожидать).