首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tmux:创建新的拆分窗口无效

tmux:创建新的拆分窗口无效
EN

Unix & Linux用户
提问于 2015-12-25 20:32:40
回答 1查看 1.4K关注 0票数 1

我想要一个有两个窗口的新的会话,名为mutt和offlineimap。应该使用两个不同的离线映射实例(具有不同的配置文件)将脱机映射窗口分割为两个。

代码语言:javascript
复制
tmux new-session -d -s mail -n mutt mutt
tmux new-window -d -t mail -n offlineimap "offlineimap -c ~/.dotfiles/mutt/dev.offimap"
tmux split-window -d -v -t mail "offlineimap -c ~/.dotfiles/mutt/trash.offimap"

只是创建了一个杂种狗窗口,但没有离线地图窗口。=>,那个代码有什么问题?

编辑:

当我将""的内容更改为sleep 1000时,它可以工作。

EDIT2:

我发现第二个tmux窗口在创建后立即退出,因为它“使用与第一个脱机映射相同的元数据”。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2015-12-26 00:06:50

你写道:

代码语言:javascript
复制
tmux new-session -d -s mail -n mutt mutt
tmux new-window -d -t mail -n offlineimap "offlineimap -c ~/.dotfiles/mutt/dev.offimap"
tmux split-window -d -v -t mail "offlineimap -c ~/.dotfiles/mutt/trash.offimap"

试一试,将其写入tmux_mail.sh或任何您想要命名的名称:

代码语言:javascript
复制
#!/bin/bash

tmux \
    -v \
    new-session \
        -d \
        -s mail \
        -n mutt \
        mutt \
    \; \
    new-window \
        -d \
        -n offlineimap \
        "offlineimap -c ~/.dotfiles/mutt/dev.offimap" \
    \; \
    split-window \
        -d \
        "offlineimap -c ~/.dotfiles/mutt/trash.offimap" \
    \; \
    attach

保存并使其可执行后,在命令提示符下运行它,以享受新的tmux邮件会话:

代码语言:javascript
复制
$ ./tmux_mail.sh

解释

  • \;使每个new-windowsplit-window参数成为单个连续tmux命令的一部分
  • 所以我们省略了-t,因为当所有这些都指定为单个tmux命令的一部分时,不需要-t来指定目标会话
  • 除了最后一行之外,每一行都使用bash行延续\ (反斜杠后面跟着空格,然后是行返回)来继续我们希望bash运行的命令行,同时允许我们用几乎每行一个选项完整地编写命令,以便更容易地阅读和清晰,这可能有助于您长期维护此脚本。
  • 用于详细日志记录的-v需要在开始时按照man tmux中的语法概要指定。
  • -d是分离的,这样它就不会立即执行附加到当前终端的默认行为,直到我们有机会完全指定我们想要的选项为止。
  • 因此,当我们希望tmux所做的所有选项完成时,我们必须使用attach才能在终端上实际看到最终结果。
  • 请注意,如果程序是非交互式的,只运行和退出(如echo ),那么在tmux中同样会发生这种情况,它只会运行程序,然后在程序退出时关闭窗口。

因此,只要您的muttofflineimap命令实际正常工作,并且不会立即退出,并且在tmux之外正常工作,那么使用这些命令,它们应该在tmux中工作,从而创建您想要的tmux会话。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/251545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档