从 bash 启动时在 tmux 中绑定源文件

bind source-file in tmux on startup from bash

我有一个 .tmux.conf 文件,当我按下正确的键时,它会绑定一组进一步的 tmux 指令(在这种情况下,Ctrl + b 后跟 'k'):

bind k source-file ~/.tmux/myfile

当我进入我的 tmux 终端并按 Ctrl + b 然后按 k 时,它工作正常,并且 myfile 中的脚本按预期运行。我现在正在尝试使用 .bashrc 文件中的命令启动这一切,方法是在启动后将密钥发送到 tmux 会话:

launch_things() {
    tmux new-session -d -s mysession
    tmux send-keys -t mysession C-b k
    tmux a -t mysession
}

但是,这不起作用。它正在启动 tmux 会话,显然将键弯曲到它,然后附加到会话。我不确定是不是因为我在发送密钥时做错了什么,或者是否无法发送这样的密钥组合。请注意,当我附加时,我 可以 在屏幕上看到字母 k,因此 send-keys 功能正在做 某事 .

任何人都可以告诉我我做错了什么,或者建议另一种从我的 bash 脚本启动绑定源文件 (~/.tmux/myfile) 的方法吗?

P.S。我是 运行 Ubuntu 16.04 如果这有区别的话。

似乎 send-keys 在发送字符串时不会尝试将它们解释为前缀字符。有命令 send-prefix 但其行为方式相同。

所以简单的答案是 tmux source-file ~/.tmux/myfile 或者更长的时间

tmux attach-session -t mysession\; source-file ~/.tmux/myfile\; detach-client