Unix tmux会话是否有办法确定它本身是否是嵌套的tmux会话?

Unix tmux会话是否有办法确定它本身是否是嵌套的tmux会话?,unix,tmux,Unix,Tmux,如果是这样的话,就可以根据上下文编写键脚本,更改tmux的哪个嵌套级别处理事件。e、 g.如果嵌套的内部tmux在其当前窗口中只有一个打开的窗格,我希望主机tmux处理一个键 主机tmux可以知道其当前窗格正在运行一个tmux,它可以“通过”该键 但是现在,如果子tmux的当前窗口只有一个窗格,请告诉主机tmux“哦,谢谢,我只有一个窗格”,这样主机tmux就可以继续并执行其窗格未运行tmux时通常会执行的操作 现在至少有两种方法:一种是我描述的,主机tmux总是传递到内部tmux。这里的问题是

如果是这样的话,就可以根据上下文编写键脚本,更改tmux的哪个嵌套级别处理事件。e、 g.如果嵌套的内部tmux在其当前窗口中只有一个打开的窗格,我希望主机tmux处理一个键

主机tmux可以知道其当前窗格正在运行一个tmux,它可以“通过”该键

但是现在,如果子tmux的当前窗口只有一个窗格,请告诉主机tmux“哦,谢谢,我只有一个窗格”,这样主机tmux就可以继续并执行其窗格未运行tmux时通常会执行的操作

现在至少有两种方法:一种是我描述的,主机tmux总是传递到内部tmux。这里的问题是,我不知道内部tmux如何检测(1)它自己正在tmux中运行,因此它知道报告(2)如何向其主机tmux报告有关其情况的任何事实。例如,我的vimrc通过在Vim中调用
tmux
来实现这一点(即vimscript
system('tmux选择窗格+')

另一种方法是以某种方式让外部tmux找出内部tmux是哪个套接字,然后调用
tmux-S innertmux socket
来推断内部tmux的状态,并根据该信息确定是否发送命令。仅仅基于它自己的tmux变量,无法确定该套接字的路径,但我认为使用一些有针对性的shell脚本,这不会太难

《盗梦空间》笑话欢迎


但问题很严重。这不是开玩笑。有没有其他方法可以实现这一点?

这是一个古老的方法,但对于其他方法:tmux设置一个名为
$tmux
的环境变量,因此您可以使用
if[-n“$tmux”];然后TMUX_ONLY_代码;fi