tmux 以编程方式创建窗格

tmux 以编程方式创建窗格

我想以编程方式创建 tmux 窗格。例如,我有一个要执行的命令列表,我将创建一个 shell 脚本,该脚本将动态调用 tmux 命令以及要在每个窗格中执行的命令。您能举个例子吗?

答案1

tmuxify(我写的 lib)就是这样的。你可以看看tmux send-keys使用该命令的代码这里对如何开始有所了解。

请记住,您需要首先在要执行命令的位置创建分割。tmux split-window为此使用。

我还建议阅读man上面两个命令的部分。解释得非常好。如果您有任何疑问,请在下面发表评论。

答案2

多路复用器也能很好地完成这项工作。它是一个 ruby​​ gem,使用 yml 文件来存储您的布局,并可以通过编程为您设置它们。

它的 github 页面有一个不错的自述文件,但基本上是这样的:

设置:

mux new [project]
vim the/autogenerated/project.yml # Edit the config to suit

打开你的项目:

mux [project]

示例配置:

windows:
  - editor:
      layout: tiled
      panes:
        - cd ~/code/source/dir && git status
        - cd ~/code/source/dir && vagrant up && vagrant ssh -- -t 'sudo su; /bin/bash' # log in as sudo, the final /bin/bash keeps the shell open
        - cd ~/code/source/dir && vagrant up && vagrant ssh -- -t 'sudo su some_user && cd ~/mounted/dir/ && vim ./; /bin/bash' # log in, go to your mounted code and vim
        - # do nothing
  - logs: tail -f log/development.log

附注:它还可以在打开窗格时运行命令,因此您可以 ssh 进入某些机器,以各种用户身份登录等等。

Tmuxify 可能也涵盖了同样的领域,所以好处是你还有选择。坏处是...你必须做出选择 ;)

相关内容