在 tmux 中创建自定义命令

在 tmux 中创建自定义命令

我知道如何在 tmux 中将按键绑定到命令,但我想创建一个自定义命令(可以使用前缀键 + 冒号输入)。在此自定义命令中,我想执行其他几个命令。

我的想法是这样的:

no-side-status() {
    set status-left-length 0
    set status-right-length 0
}

side-status() {
    set status-left-length 50
    set status-right-length 150
}

因此我可以键入:no-side-status来隐藏左侧和右侧状态栏,然后键入:side-status来恢复左侧和右侧状态栏。

是否可以创建这样的自定义命令?如果可以,该怎么做?如果不行,还有其他方法可以实现我想要的吗?

答案1

最初,tmux 除了运行外部 shell 脚本之外,不支持任何自定义命令。

有一个 mod 为 tmux 添加了全面的脚本支持:http://ershov.github.io/tmux/

它还允许创建用户命令。例如,您的命令如下:

proc no-side-status {} {
    set status-left-length 0
    set status-right-length 0
}

proc side-status {} {
    set status-left-length 50
    set status-right-length 150
}

要从 tmux 命令行使用,只需输入C-b :side-statusno-side-status

要将其绑定到密钥,请使用bind C-p tcl side-status

答案2

bind C-p run "/usr/bin/notify-send Foo"

答案3

这是完整答案。您可以有两个 tmux 配置。一个包含

set status-left-length 0
set status-right-length 0
bind-key R source-file ~/.tmux.alternative.conf \; \
                    display-message "Alternative configuration loaded"

另一个包含

set status-left-length 50
set status-right-length 15
bind-key R source-file ~/.tmux.conf \; \
                    display-message "Default configuration loaded"

答案4

tmux 现在支持浮动窗口了。你可以使用 弹出一个窗口tmux display-popup。然后在这个弹出的窗口中运行你想要使用的脚本。

相关内容