会话初始化

会话初始化

我发现自己经常做同样的事情tmux

  1. cd到给定目录。
  2. tmux
  3. 将窗口重命名为我正在做的事情。
  4. 将窗口垂直分割 50%。
  5. 在左侧窗口中启动一个进程。
  6. 在右侧窗口中启动另一个进程。
  7. 利润。

有没有办法让我自动启动所有这些,以便我可以运行单个命令并获取我正在寻找的窗口?

答案1

Archwiki 拯救了世界!会话初始化tmux 页面上给出了一个例子。

也就是说,不是以 身份启动 tmux tmuxtmux new -s name而是在启动时为会话命名,而不是赋予其数字。

会话初始化


您可以通过在 ~/.tmux.conf 中包含这些详细信息,让 tmux 打开带有预加载窗口的会话:

new  -n WindowName Command
neww -n WindowName Command
neww -n WindowName Command

要启动带有拆分窗口(多个窗格)的会话,请在要拆分的 neww 下方包含 splitw 命令;因此:

new  -s SessionName -n WindowName Command
neww -n foo/bar foo
splitw -v -p 50 -t 0 bar
selectw -t 1 
selectp -t 0

将打开 2 个窗口,其中第二个窗口将命名为 foo/bar,并将垂直分成两半 (50%),其中 foo 运行在 bar 上方。焦点将位于窗口 2 (foo/bar) 的顶部窗格 (foo)。

注意:会话、窗口和窗格的编号从零开始,除非您在 .conf 中指定了基本索引 1

要管理多个会话,请从您的conf文件中获取单独的会话文件:

# initialize sessions
bind F source-file ~/.tmux/foo
bind B source-file ~/.tmux/bar

答案2

罗布的回答很棒,准确地解释了如何从 tmux 本身处理会话。现在,如果您不介意使用第三方工具,tmuxator是一个伟大的项目,可以帮助轻松创建和管理会话

每个会话都由一个配置文件控制,该文件允许您定义所有窗口和窗格及其布局以及在其中运行的默认命令。它还允许您定义默认项目目录、特定套接字以及需要运行的守护进程(例如mysql)。最重要的是,它还提供了一种简单的方法来附加到它们:只需运行mux [session-name],它将启动会话或附加到它(如果它已经在运行)。我已经使用它有一段时间了并且喜欢它(谢谢阿齐兹!)。

https://github.com/aziz/tmuxinator

相关内容