C-a "
我知道如何使用and/or在 Screen 中列出可用的窗口C-a '
,但是如何指定要转到最后一个屏幕而不必明确说明。
就像我正在寻找的是这样的:
C-a L
注意:我只是询问 screen 是否本机支持此功能,或者我是否必须编写一些脚本才能使其正常工作,此外,如果证明有必要,将不胜感激编写所述脚本的提示和指针。
C-a "
我知道如何使用and/or在 Screen 中列出可用的窗口C-a '
,但是如何指定要转到最后一个屏幕而不必明确说明。
就像我正在寻找的是这样的:
C-a L
注意:我只是询问 screen 是否本机支持此功能,或者我是否必须编写一些脚本才能使其正常工作,此外,如果证明有必要,将不胜感激编写所述脚本的提示和指针。
假设您有一个窗口 0(即,您还没有关闭它),您可以这样做
C-a 0
( select 0
) 后跟
C-a <backspace>
( prev
),切换到上一个窗口;如果你在第一个窗口,它会环绕到最后一个窗口。
该prev
命令还有其他几个默认键绑定:
C-a h
C-a p
C-a C-p
如果您创建一个带有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 Screen 中的最后一个窗口”。)
或者(不依赖于 $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
(切换到屏幕的最后一个窗口)命令。