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

问题描述 投票:0回答:3

我知道如何使用

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

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


C-a L

注意:我只是问屏幕是否原生支持此功能,或者我是否必须编写一些脚本才能使其正常工作,此外,如果证明有必要,则编写所述脚本的提示和指针将受到赞赏。

gnu-screen
3个回答
2
投票

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

C-a 0

(

select 0
) 随后是

C-a <backspace>

(

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

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

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

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
(切换到屏幕的最后一个窗口)命令。


0
投票
screen -X other 

您可以切换您停留的最后一个窗口。

© www.soinside.com 2019 - 2024. All rights reserved.