سؤال كيف أقوم بإعادة ترتيب windows tmux؟


في screen، يمكنني فقط اكتب C-a :number 0 لتحريك نافذة إلى أعلى قائمة النوافذ ودفع كل النوافذ الأخرى لأسفل. ما هو تسلسل الأوامر المعادلة ل tmux؟ نظرت إلى صفحة الرجل ، لكنني أجد ذلك مربكًا في هذه النقطة.


374
2018-02-02 19:53


الأصل


C-b، . يتيح لك ترقيم نافذة. - isomorphismes
عند قراءة جميع الإجابات الكثيرة ، لا أزال أرى حلًا سهلًا لسؤال OP: كيفية تحريك نافذة معينة إلى الموضع 0 وتحويل كل الباقي إلى اليمين. هل عليّ فعلاً تحويل كل واحد يدويًا للقيام بذلك؟ أريد فقط التراجع عن خطوة قمت بها عن طريق الخطأ (وأنا لست متأكداً من أي شيء) والتي أعتقد أنها نقلت النافذة 0 إلى النافذة 8 وحولت جميع الآخرين إلى اليسار. - nealmcb
nealmcb أسهل ما يمكن أن أتوصل إليه هو تعيين مؤشر أساس إلى 1 ، إعادة ترقيم ، ثم تحريك نافذتك في الفتحة 0 الفارغة: superuser.com/a/1155999/674549 - eMBee
لفرق من swap-window -s number و swap-window -t number لتبديل النافذة الحالية ، انظر جوابي هنا. - qeatzy
نرى هذا الجواب لوظيفة bash لتغيير نطاق إطارات tmux ، على سبيل المثال ، [2-5] من النوافذ [0-6]. - qeatzy


الأجوبة:


ال swap-window الأمر هو الأقرب إلى ما تريد.

"البادئة:" (التي هي "Ctrl-B:" افتراضيًا) تنقلك إلى موجه الأوامر tmux. هناك تدخل:

swap-window -s 3 -t 1

للسماح لنافذة رقم 3 ونافذة رقم 1 بمقايضتهما.

لمبادلة النافذة الحالية بالنافذة العليا ، قم بما يلي:

swap-window -t 0

في الحالة غير المحتملة لعدم وجود نافذة في الفهرس 0 ، قم بما يلي:

move-window -t 0

(إذا كان مؤشر الأساس هو 0 ، كما هو افتراضياً).

يمكنك ربط هذا الأمر بمفتاح (T لـ "top" على سبيل المثال) عن طريق إضافة التالي إلى الخاص بك ~/.tmux.conf:

bind-key T swap-window -t 0

418
2018-03-01 09:39



شكرا لتحريرك ، ولكن move-window يعمل فقط ، إذا لم يكن هناك نافذة أخرى في المؤشر المحدد. لذلك في معظم الحالات ، move-window -t 0 لن تعمل ، لأن هناك عادة نافذة أخرى في هذا الموقع بالفعل. - matlehmann
هذا صحيح ، سأقوم بتحسينه. - zakkak
قد ترغب في إلقاء نظرة على movew. - Marcello Romani
أيضا، bind-key L swap-window -t -1 لجعلها النافذة الأخيرة. - w17t
لفرق من swapw -s number و swapw -t number لتبديل النافذة الحالية ، انظر جوابي هنا. - qeatzy


إضافة إلى إجابة جاريث ، يمكنك استخدام الروابط الرئيسية التالية

bind-key -n C-S-Left swap-window -t -1
bind-key -n C-S-Right swap-window -t +1

الضغط على Ctrl + Shift + Left (سيتم تحريك النافذة الحالية إلى اليسار. وبالمثل ، لا تحتاج إلى استخدام المعدل (C-b).


225
2018-02-15 11:18



هذه -1 و +1 بناء الجملة يساعد على حل مشكلة المؤشرات المحتلة. سيعمل tmux على تغيير النوافذ الأخرى نيابة عنك وسيقوم بالتفاف حول الحدث حتى النهاية / البداية تلقائيًا. هذا هو أفضل إجابة. - brianpeiris
هذا هو تقي! شكر. - Bruno Buccolo
عجزى عن تحريك نوافذ tmux بسهولة تم التنصت لى لبضعة أسابيع. هذا يجعل الأمر أسهل بكثير للتعامل مع النوافذ! شكرا جزيلا من هذا تحويل مؤخرا tmux. - calvinf
تلميح عظيم ، تفضل bind-key S-Left swap-window -t -1، لذلك يمكنني القيام <prefix> shift + arrow ، لأنني لا أحب العبث بالربط الرئيسي للبرامج. - demure
في حالة استخدام الحروف ، يجب استخدام حرف كبير وليس C-S ، على النحو التالي: bind-key -n C-H swap-window -t -1 - Matthew Mitchell


ما يعادل tmux ل :number 42 هو :move-window -t 42.


60
2018-04-05 22:12



هذا ملزم ل C-b. - vedang
شكر! هذا هو أفضل بكثير من الإجابة المقبولة ايمو. - Ashe
ArlenCuss في الواقع كل الإجابات جيدة ومفيدة. كما ترى ، باستخدام الشاشة: الرقم الذي يمكنك تبديل النوافذ به ، باستخدام tmux: نافذة الانتقال ، يمكنك فقط إعادة تحديد النافذة إذا لم يكن الفهرس المستهدف قيد الاستخدام. لذلك ، ايمو ، على حد سواء: نافذة المبادلة و: تحريك النافذة ضرورية لفهم السيطرة على مواقع النوافذ :) - Victor Farazdagi
إجراء 1+ للحصول على إجابة من أحد معلمي البرمجة (أيضًا لكونه صحيحًا). هذه هي الطريقة الوحيدة التي يمكنني الحصول عليها للعمل على نافذة نشطة - engineerDave
وtmux :move-window هو ليس أي ما يعادل الشاشة :number. :number مقايضة إذا كانت الوجهة موجودة ، :move-window فشل في هذه الحالة. عليك أن تختار بين :move-window و :swap-window - piec


يمكنك تنفيذ ما يعادل screenالصورة number الأمر باستخدام البرنامج النصي shell الخارجي الذي يختار بين swap-window و move-window. يمكنك ربطها بمفتاح بهذه الطريقة:

bind < command-prompt -p index "run-shell '~/.tmux.number.sh %%'"

~/.tmux.number.sh:

#!/bin/bash
if [ $# -ne 1 -o -z "$1" ]; then
    exit 1
fi
if tmux list-windows | grep -q "^$1:"; then
    tmux swap-window -t $1
else
    tmux move-window -t $1
fi

12
2018-04-16 15:42



حل لطيف جدا ، وعمل عظيم! أنا فقط قدمت تعديلات طفيفة لتنظيف وإزالة -F الخيار الذي لم يتم قبوله من قبل نسخة tmux الخاصة بي. - haridsv


أعيد ترقيم النوافذ مثل هذا:

السيطرة+ب، .، 222

سيجعل الحالي tmux نافذة (جميع الأجزاء) رقم 222.


ذات الصلة: عندما أقوم بخلط الأشياء في المكان ، أميل إلى القيام بذلك

السيطرة+ب  :new-session -d -s "reading"

ومن هناك يمكنني أيضًا استخدامه السيطرة+ب، .، reading لتحريك النافذة الحالية (جميع الأجزاء مرة واحدة) إلى جلسة القراءة. يمكنك تصفح بين الدورات مع السيطرة+ب، s الطريقة التي تتصفحها خلال الجلسة باستخدام السيطرة+ب، w.

HTH


10
2017-07-09 22:16





استخدام نافذة مبادلة للانتقال إلى أي معرف: [أقرب إلى الشاشة: الرقم]

# window movement / renumbering like in screen's :number
bind-key m command-prompt -p "move window to:"  "swap-window -t '%%'"

[m للتحرك -> ضرب البادئة - m وأدخل القول 3. . لإعادة ترقيم النافذة إلى 3]


8
2017-12-12 03:13



هذا أمر جيد بالفعل ، ولكن أفضل من ذلك هو: القيام بتبديل النافذة ، وإذا فشلت ، تراجع إلى نافذة الانتقال - nisc


حيث أن إجابة Ashish Ariga لا تعمل على الإصدار 1.9a والإصدارات الأقدم. أنا أستعمل < و > لتبديل النافذة إلى اليسار واليمين ، على التوالي ، عن طريق إضافة السطر أدناه إلى .tmux.conf.

# swap window to left or right
bind-key -r < swap-window -t -1
bind-key -r > swap-window -t +1

5
2018-03-18 17:08





لأولئك منكم الذين يستخدمون byobu كملحق للـ tmux ، يمكنك تبديل النافذة الحالية بالنافذة السابقة أو التالية مع:

Ctrl-Shift-F3
Ctrl-Shift-F4

ربط المفتاح المحدد من قبل byobu لهذه المفاتيح قد تكون ذات أهمية:

bind-key -n    C-S-F3 swap-window -t :-1
bind-key -n    C-S-F4 swap-window -t :+1

3
2018-01-26 00:48



سيكون كبيرا اختصار للتنقل حول الانقسامات في نافذة معينة. - Pablo Bianchi