切换到GNU Screen中的最后一个窗口

时间:2013-11-07 20:42:34

标签: gnu-screen

我知道如何使用C-a "和/或C-a '在屏幕中列出可用的窗口,但是如何指定要转到最后一个屏幕而不必明确说明。

就像我正在寻找的东西是这样的:

C-a L

注意:我只是询问屏幕是否支持本机,或者我是否必须编写一些脚本才能使其正常工作,此外,写作提示和指示说脚本,如果证明有必要,将不胜感激。

2 个答案:

答案 0 :(得分:1)

假设你有一个窗口0(即你没有关闭它),你可以做

C-a 0

select 0)后跟

C-a <backspace>

prev),切换到上一个窗口;如果你在第一个窗口,它会绕到最后一个窗口。

prev命令有几个其他默认键绑定:

C-a h
C-a p
C-a C-p

答案 1 :(得分:0)

如果使用Ctrl+a c创建新窗口,屏幕将切换到新创建的最后一个窗口。 (如果那不是您想要的,那么:

screen -Q select $(screen -S $STY -Q windows|sed 's/ \([[:digit:]]*-*\**\)\$/\n\1/g'|tail -n1|cut -d: -f1|sed 's/[^[:digit:]]//g')

将从任何屏幕窗口中“切换到GNU屏幕的最后一个窗口。”

或者(不取决于$ STY,并且假设您要在screen -ls中进行第一个或唯一的屏幕会话)可以使用:

screen -S $(screen -ls|grep '^\s'|awk '{print $1}'|head -n1) -Q select $(screen -Q windows|sed 's/\([[:digit:]]*-*\**\)\$*\!*/\n\1/g'|grep '[[:digit:]]'|tail -n1|sed 's/[^[:digit:]]//g')

如果这是您经常需要的,则可以添加:

_stslw_fn(){ screen -Q select $(screen -Q windows|sed 's/\([[:digit:]]*\)[^ ]*/\n\1/g'|tail -n1);};alias stslw="_stslw_fn"

~/.bash_aliases的末尾以创建stslw(切换到屏幕的最后一个窗口)命令。