如果是这样,将可以编写更改tmux嵌套级别根据上下文处理事件的脚本。例如如果嵌套的内部tmux在其当前窗口中只打开了一个窗格,我希望主机tmux处理一个密钥。
主机tmux可以知道它的当前窗格正在运行tmux,这使得它“通过”密钥。
但现在孩子tmux,如果当前窗口只有一个窗格,告诉主机 tmux“哦,谢谢,我只有一个窗格”,所以主机tmux可以继续如果其窗格未运行tmux ,则执行通常会执行的操作。
现在至少有两种方式:一种是我描述的,主机tmux总是传递给内部tmux。这里的问题是我不知道内部tmux如何检测(1)它本身在tmux中运行,因此它知道报告和(2)如何向其主机tmux报告有关其情况的任何事实。例如,我的vimrc通过从Vim中调用tmux
来实现这一点(即vimscript system('tmux select-pane .+')
)。
另一种方法是以某种方式获取外部tmux来确定内部tmux是哪个套接字,并调用tmux -S innertmux-socket
来推断内部tmux的状态,并根据该信息确定是否发送命令。基于它自己的tmux变量,在该套接字的路径上没有确定性,但我认为对于一些有针对性的shell脚本,这不会太难。
成立笑话欢迎......
但问题很严重。这不是开玩笑。还有其他方法可以达到这个目的吗?