我如何设置tmux,使它启动与指定的窗口打开?


当前回答

我是这样做的:

#!/bin/bash

function has-session {
  tmux has-session -t name_of_my_session 2>/dev/null
}

if has-session ; then
  echo "Session already exists"
else
  cd /path/to/my/project
  tmux new-session -d -s name_of_my_session 'vim'
  tmux split-window -h -p 40 start_web_server
  tmux split-window -v
  tmux attach-session -d -t name_of_my_session
fi

我的每个项目都有一个文件。你也可以把它们分组,一些用于工作,一些用于业余项目。

也可以将其移动到~/bin文件夹,将其添加到PATH并给出tmux_my_awesome_project名称。然后你就可以在每个地方运行它了。

其他回答

你可以从.tmux.conf文件中获取不同的会话,如下所示:

# initialize sessions
bind S source-file ~/.tmux/session1 
bind s source-file ~/.tmux/session2

然后按照你的要求设置会议的格式:

#session1
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)。

然后,您可以使用PrefixShifts启动首选的tmux会话(在本例中为session1)

py允许您在每个窗格中简单地列出所需的命令,并以包含三个破折号的行作为前缀。

下面是一个示例smux文件,它启动了三个窗格。

---
echo "This is pane 1."
---
cd /tmp
git clone https://github.com/hq6/smux
cd smux
less smux.py
---
man tmux

如果你把它放在一个叫做Sample的文件里。Smux,然后可以运行以下命令来启动。

pip3 install smux.py
smux.py Sample.smux

完全免责声明:我是smux.py的作者。

这对我很有用。创建5个具有给定名称的窗口,并自动选择到主窗口。

new  -n home
neww -n emacs
neww -n puppet
neww -n haskell
neww -n ruby
selectw -t 1

如果你只是想把屏幕分成2个窗格(水平),你可以运行这个命令(不需要tmux或shell脚本):

tmux new-session \; split-window -h \;

你的屏幕会是这样的:

[ks@localhost ~]$                      │[ks@localhost ~]$ 
                                       │
                                       │
                                       │
                                       │
                                       │
                                       │
                                       │
                                       │
                                       │
                                       │
                                       │
[10] 0:ks@localhost:~*                  "localhost.localdomain" 19:51 31-янв-16

试试兄弟,这是一个项目引导器。

它提供了与tmux交互的简单api。

它看起来是这样的:

#!/bin/sh
# @ project_name/tasks/init.sh
structure project_name
  window editor
    run 'vim'
  window terminal
    run 'echo happy coding ...'
focus editor
connect project_name

要启动一个项目,所有人需要做的是运行以下命令-

兄弟开始<project_name>

检查下面的截屏,它展示了如何开始与兄弟和使用它的tmux api。

https://user-images.githubusercontent.com/8296449/50532502-2cf3e400-0b6e-11e9-84af-c5f77a04e5cc.gif