使用工作目录保存布局/会话

bio*_*man 5 byobu

这是向 Byobu 作者 @Dustin Kirkland 提出的开放功能请求

Byobu可以保存布局,这对我来说有点用处。但我也想保存当前布局的工作目录。如果它可以重新运行 ssh 登录或恢复 vim/emacs 当前打开的文件,那就更好了。有了这个功能,我可以有一个servers布局来快速登录到我经常使用的服务器,或者打开projectABC布局来快速进入项目并从我离开的地方开始工作。

快速搜索表明这个几乎完全一样的想法已经通过tmux-resurrect实现了,我只是不知道如何在 Byobu 中使用它。然而,另一件事是,我想用特定名称保存布局或会话,而不仅仅是所有内容的一个名称。

bio*_*man 1

根据这篇文章,一个名为的 Ruby gemteamocil似乎完全符合我的要求

https://blog.shameerc.com/2014/05/better-productivity-with-tmux-and-teamocil

我在这里总结了保留内容的基本部分:

sudo gem install teamocil
Run Code Online (Sandbox Code Playgroud)

最有可能的是,您的办公室和个人项目会有不同的工作流程。Teamocil 允许您为每种情况创建预定义的配置,并且您只需启动 teamocil 即可设置整个工作区。您可以创建 teamocil 配置,例如 ~/.teamocil 或 ~/.teamocil/office.yml、~/.teamocil/personal.yml 等。例如,当我在办公室开始工作时,我将首先移动到我的项目文件夹并从版本控制系统进行更新。在其他一些终端中,我将连接到不同的服务器,等等。使用 Teamocil,我将使用 $ teamocil --edit office 为 Office 创建一个配置文件 office.yml 并添加以下内容

session:
  name: "Office"
  windows:
    - name: "Local"
      root: "~/Workplace/office"
      layout: tiled
      panes:
        - cmd: ["ls"]
          focus: true
        - cmd: ["cd application; svn up ."]
        - cmd: ["cd monitor; git pull origin master"]
    - name: "Remote"
      root: "~/Workplace/office"
      layout: tiled
      panes:
        - cmd: ["ssh -i prodkey.pem user@prodserver1.com"]
          focus: true
        - cmd: ["ssh -i testkey.pem user@testserver.com"]
        - cmd: ["ssh -i devkey.pem dev@devserver.com"]
Run Code Online (Sandbox Code Playgroud)

要启动它,首先启动 tmux 会话并从 tmux 会话内部运行,

$ teamocil office
Run Code Online (Sandbox Code Playgroud)