tmux配置中的函数

时间:2017-05-26 16:37:52

标签: bash 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 个答案:

答案 0 :(得分:2)

据我所知,没有官方方法直接在.tmux.conf中声明shell函数。 如果您经常使用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