Функции в конфиге tmux

Можно ли определить функцию в конфигурации Tmux? У меня есть общий рабочий процесс, который я хочу запустить для данного окна tmux. Прямо сейчас я определил это в скрипте bash, который получает номер окна в качестве параметра. Пример:

bind 1 run-shell "~/.config/tmux/switchWindow.sh 1"
bind 2 run-shell "~/.config/tmux/switchWindow.sh 2"
bind 3 run-shell "~/.config/tmux/switchWindow.sh 3"
bind 4 run-shell "~/.config/tmux/switchWindow.sh 4"
[...]

У меня есть эта настройка для нескольких функций. Итак, кроме моего tmux.configдля работы моей установки tmux требуется несколько сценариев bash. Я хочу сгладить это и в идеале все в tmux.conf, Есть ли способ определить функции в моей конфигурации tmux и использовать внутри них команды bash?

1 ответ

Решение

Насколько я знаю, не существует официального способа объявить функцию оболочки непосредственно в .tmux.conf, Если вы используете bash обычно может быть полезно объявить функции в default-command и выставить их дочерним процессам с export -fи откройте интерактивный экран с bash -i,

set-option -g default-command '   \
function switchWindow () {        \
  echo "Do something for $1";     \
};                                \
function otherFunc () {           \
  echo "Do something for $1";     \
};                                \
export -f switchWindow otherFunc; \
bash -i'

bind 1 send-keys "switchWindow 1" C-m
bind 2 send-keys "switchWindow 2" C-m
Другие вопросы по тегам