قم بالتبديل إلى النافذة الأخيرة في شاشة GNU

StackOverflow https://stackoverflow.com/questions/19846265

  •  29-07-2022
  •  | 
  •  

سؤال

أعرف كيفية سرد النوافذ المتاحة في الشاشة باستخدام C-a " و/أو C-a ', ، ولكن كيف تحدد أنك تريد الذهاب إلى الشاشة الأخيرة دون الحاجة إلى القول بشكل صريح.

مثل ما أبحث عنه هو شيء مثل هذا:

C-a L

ملاحظة: أنا فقط أسأل ما إذا كانت الشاشة تدعم هذا أصليًا أو إذا كان عليّ أن أكتب القليل من البرنامج النصي من أجل جعل هذا العمل ، وأيضًا ، نصائح ومؤشرات لكتابة البرنامج النصي المذكور ، إذا كان ضروريًا ، سيكون موضع تقدير.

هل كانت مفيدة؟

المحلول

على افتراض أن لديك نافذة 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" من داخل أي نافذة شاشة.)

بدلاً من ذلك (دون الاعتماد على $ 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 (التبديل إلى النافذة الأخيرة للشاشة).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top