আমি কীভাবে tmux উইন্ডোটিকে পুনরায় অর্ডার করব?


413

ইন screen, আমি কেবল C-a :number 0উইন্ডো তালিকার শীর্ষে একটি উইন্ডোটি সরানোর জন্য টাইপ করতে পারি এবং অন্য সমস্ত উইন্ডোটিকে একটির নীচে ঠেকাতে পারি। সমতুল্য কমান্ড ক্রম কি tmux? আমি ম্যান পৃষ্ঠার দিকে তাকিয়েছিলাম, কিন্তু আমি এটি এই পয়েন্টে বিভ্রান্তিকর দেখাচ্ছে।


95
C-b, .আপনাকে একটি উইন্ডো ছড়িয়ে দিতে দেয়।
isomorphismes

7
অনেকগুলি উত্তর পড়ে, আমি এখনও ওপি-র প্রশ্নের সহজ সমাধান দেখতে পাচ্ছি না: প্রদত্ত উইন্ডোটি 0-এ কীভাবে স্থানান্তর করতে হবে এবং সমস্ত বাকীটিকে ডানে সরিয়ে নেওয়া যায়। এটি করার জন্য আমাকে কি প্রত্যেককে ম্যানুয়ালি শিফট করতে হবে? আমি ভুল করে আমার করা একটি পদক্ষেপটি পূর্বাবস্থায় ফিরিয়ে আনতে চাই (এবং আমি ঠিক কী তা নিশ্চিত নই) যা আমি মনে করি উইন্ডো 0 টি উইন্ডো 8 তে সরানো হয়েছে এবং সমস্ত অন্যান্যকে বাম দিকে সরিয়ে নিয়েছে।
nealmcb

1
@nealmcb আমি যে সহজতম সাথে আসতে পারি তা হ'ল বেস-ইনডেক্স 1, পুনর্নবীকরণ, তারপরে আপনার উইন্ডোটি ফাঁকা 0 স্লটে স্থানান্তরিত করুন: superuser.com/a/1155999/674549
ইমবি

বর্তমানের উইন্ডোটির স্বতন্ত্র পরিবর্তন করতে swap-window -s numberএবং আমার উত্তরটি এখানে দেখুনswap-window -t number
কুইটজি

টিএমউक्स উইন্ডোতে সীমার স্থান পরিবর্তন করতে বাশ ফাংশনের জন্য এই উত্তরটি দেখুন , যেমন, [0-6] উইন্ডোর [2-5]।
কুইটজি

উত্তর:


467

swap-windowকমান্ড কি আপনি চান নিকটস্থ হয়।

"উপসর্গ:" (এটি Ctrl+ B, :ডিফল্টরূপে) আপনাকে tmux - কমান্ড প্রম্পটে নিয়ে আসে। সেখানে আপনি প্রবেশ করুন:

swap-window -s 3 -t 1

উইন্ডো নম্বর 3 এবং উইন্ডো নম্বর 1 তাদের অবস্থানগুলি অদলবদল করতে দেয়।

উপরের উইন্ডো দিয়ে বর্তমান উইন্ডোটি অদলবদল করতে, করুন:

swap-window -t 0

ইনডেক্স 0 এ উইন্ডো না থাকার সম্ভাব্য ক্ষেত্রে, করুন:

move-window -t 0

(যদি বেস-সূচক 0 হয় তবে এটি ডিফল্ট হিসাবে হয়)।

আপনি এই কমান্ডটি একটি কী (উদাহরণস্বরূপ "শীর্ষের জন্য" টি) সাথে আবদ্ধ করতে পারেন আপনার নীচে নিম্নলিখিতটি যুক্ত করে ~/.tmux.conf:

bind-key T swap-window -t 0

6
আপনার সম্পাদনার জন্য ধন্যবাদ, তবে move-windowকেবলমাত্র কাজ করে, যদি প্রদত্ত সূচকে অন্য উইন্ডো না থাকে। সুতরাং বেশিরভাগ ক্ষেত্রে, move-window -t 0কাজ করবে না, যেহেতু সাধারণত ইতিমধ্যে ইতিমধ্যে অন্য একটি উইন্ডো থাকবে।
matlehmann

এটা ঠিক, আমি এটি উন্নতি করব।
জাক্কাক

2
আপনি একবার দেখতে চান movew
মার্সেলো রোমানি

3
এছাড়াও, bind-key L swap-window -t -1এটি শেষ উইন্ডো তৈরি করতে।

বর্তমানের উইন্ডোটির স্বতন্ত্র পরিবর্তন করতে swapw -s numberএবং আমার উত্তরটি এখানে দেখুনswapw -t number
কুইটজি

257

গ্যারেথের উত্তরে যুক্ত করে, আপনি নিম্নলিখিত কী বাইন্ডিং ব্যবহার করতে পারেন

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

সিআরটিএল + শিফট + বাম টিপুন (বর্তমান উইন্ডোটি বামে সরানো হবে Similarly একইভাবে ডানদিকে the সংশোধক (সিবি) ব্যবহার করার দরকার নেই।


9
এটি -1এবং +1সিনট্যাক্স দখল সূচকগুলির সমস্যা সমাধানে সহায়তা করে। tmux আপনার জন্য অন্যান্য উইন্ডোজ স্থানান্তরিত করবে এবং ইভেন্টটি স্বয়ংক্রিয়ভাবে শেষ / শুরুতে মোড়ানো হবে। এটি সেরা উত্তর।
brianpeiris

1
Tmux উইন্ডো সহজেই সরাতে আমার অক্ষমতা আমাকে কয়েক সপ্তাহ ধরে বগল করছে। এটি উইন্ডোগুলির সাথে ডিল করা এত সহজ করে তোলে! এই সাম্প্রতিক tmux রূপান্তর থেকে অনেক ধন্যবাদ।
ক্যালভিনফ

8
দুর্দান্ত ইঙ্গিত, পছন্দ করুন bind-key S-Left swap-window -t -1, তাই আমি <ਪ੍ਰੀফিক্স> শিফট + তীরটি করতে পারি, কারণ আমি প্রোগ্রামগুলির জন্য কী কী আবদ্ধ করতে চাই না।
অচপল

4
চিঠিগুলি ব্যবহার করে আপনার সিএস নয়, বড় বড় অক্ষর ব্যবহার করা দরকার:bind-key -n C-H swap-window -t -1
ম্যাথু মিচেল

1
যখন আশিস Ariga ব্যবহার আমি ভাল হিসাবে 1.9a কিছু সমস্যা আছে bind-key -n C-S-Left swap-window -t -1তবে এটা ঠিক আছে কাজ করে প্রিফিক্স ব্যবহার @MatthewMitchell দ্বারা প্রস্তাবিত
Rho Phi

63

Tmux সমতুল্য করার :number 42নেই :move-window -t 42


9
এটি সিবিতে আবদ্ধ।
বেদং

1
ধন্যবাদ! এটি গ্রহণযোগ্য উত্তর ইমোর চেয়ে অনেক ভাল।
আশে

5
@ আরলানকুস আসলে উভয় উত্তরই ভাল এবং দরকারী। আপনি দেখতে পাচ্ছেন, স্ক্রিন: নম্বরটি ব্যবহার করে আপনি উইন্ডোজ অদলবদল করতে পারবেন, টিএমউক্স এর ব্যবহার করে: মুভ-উইন্ডোটি কেবলমাত্র লক্ষ্য সূচকটি ব্যবহার না হলে আপনি উইন্ডোটি পুনঃস্থাপন করতে পারবেন। সুতরাং, ইমো, উভয়: অদলবদল উইন্ডো এবং: মুভ-উইন্ডোটি উইন্ডোটির অবস্থানগুলি নিয়ন্ত্রণ করার জন্য প্রয়োজনীয় :)
ভিক্টর ফারাজডাগী

1
প্রোগ্রামিং গুরু থেকে উত্তর পাওয়ার জন্য +1 (সঠিক হওয়ার জন্যও)। সক্রিয় উইন্ডোতে কাজ করার জন্য এটিই কেবলমাত্র আমি পেয়েছি
ইঞ্জিনিয়ার

4
tmux এর :move-windowহয় না স্ক্রিন সমতূল্য :number:numberগন্তব্য উপস্থিত থাকলে অদলবদল, :move-windowসেই ক্ষেত্রে ব্যর্থ হয়। আপনি মধ্যে নির্বাচন করতে হবে :move-windowএবং:swap-window
piec

15

আমি উইন্ডোগুলি এইভাবে ভাড়া করি:

Ctrl+ + b, .,222

বর্তমান tmuxউইন্ডোটি (সমস্ত প্যানগুলি) 222 নম্বর তৈরি করবে।


সম্পর্কিতভাবে: যখন আমি চারপাশে জিনিসগুলি বদলে যাই তখন আমি করতে চাই

Ctrl+ +b :new-session -d -s "reading"

এবং সেখান থেকে আমি ব্যবহার করতে পারেন Ctrl+ + b, ., readingপড়া সেশনের উপর বর্তমান উইন্ডোটি (সমস্ত ফলকগুলি একবারে) সরানো। আপনার সাথে সেশন মধ্যে ব্রাউজ করতে পারবেন Ctrl+ + b, sআপনি সেশন ব্রাউজ ব্যবহার করবে Ctrl+ + b, w

আছে HTH


12

আপনি বাহ্যিক শেল স্ক্রিপ্ট ব্যবহার করে screenএর numberমধ্যে নির্বাচন করে 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

2
খুব সুন্দর সমাধান, দুর্দান্ত কাজ! আমি কেবল সাফ করার জন্য ছোটখাটো সম্পাদনা করেছি এবং -Fঅপশনটি সরিয়েছি যা আমার টিএমউक्स সংস্করণ দ্বারা স্বীকৃত নয়।
হরিদসভ

8

যে কোনও আইডিতে স্থানান্তর করতে অদলবদল উইন্ডো ব্যবহার করে: [পর্দার নিকটেতম: সংখ্যা]

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

[চলার জন্য মি -> উপসর্গ-এম টিপুন এবং 3 বলুন .োকান। উইন্ডোতে 3 এ ভাড়া দিন]


1
এটি ইতিমধ্যে দুর্দান্ত, তবে আরও ভাল এটি হবে: স্যুপ উইন্ডোটি করুন এবং যদি এটি ব্যর্থ হয় তবে সরানো উইন্ডোতে ফিরে পড়ুন
nisc

5

আশীষ অরিগা উত্তরটি 1.9a এবং নীচের সংস্করণে কাজ করে না। নীচে থেকে লাইনটি যুক্ত করে আমি যথাক্রমে বাম এবং ডানে উইন্ডো অদলবদল করতে <এবং ব্যবহার করতে এবং ব্যবহার >করতে পারি .tmux.conf

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

4

এর সর্বাধিক সাধারণ সমাধান manহ'ল ডিফল্ট বাইন্ডিংগুলি ব্যবহার করা:

{           Swap the current pane with the previous pane.
}           Swap the current pane with the next pane.

6
tmux উইন্ডো এবং প্যানগুলি পৃথক।
মার্সেলো রোমানি

4
এটি এখনও আমাকে যা চেয়েছিল তা পেতে সহায়তা করেছে
lkraav

এই প্রশ্নটি উইন্ডোজগুলি নিয়ে নয় প্যানগুলি
এমবিগ্রাস

3

আপনারা যারা byobutmux- র জন্য আপনার মোড়ক হিসাবে ব্যবহার করেন, আপনি পূর্ববর্তী বা পরবর্তী উইন্ডোটি সহ বর্তমান উইন্ডোটি এটি দিয়ে পরিবর্তন করতে পারেন:

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

টুকরা চলন্ত কাছাকাছি জন্য একটি শর্টকাট ভালো হবে না একটি নির্দিষ্ট উইন্ডো।
পাবলো এ

2

আমি যে পদ্ধতিটি ব্যবহার করি তাতে পাইকের সাথে আশিষের উত্তরটির কিছুটা সংমিশ্রণ ঘটে; আমার আল্ট-বাম এবং ডান তীরটি একটি দ্রুত ছোট শেল কলআউটের সাথে আবদ্ধ রয়েছে যা উইন্ডোটিকে প্রথমে বা শেষ উইন্ডোটি না করে শ্রদ্ধার সাথে একদিকে বাম বা ডানে সরিয়ে দেয়। আমি এটি করেছি কারণ, আপনি যখন শেষ উইন্ডোতে +1 (বা প্রথম উইন্ডোতে অদলবদু -1) জারি করেন, তখনও এটি বদলে যাবে, আপনি যেমন আশা করতে পারেন তেমন ফিরে ফিরে আসবে না:

0:one 1:two 2:three 3:zero*

হয়ে

0:zero* 1:two 2:three 3:one

পরিবর্তে

0:zero* 1:one 2:two 3:three

সুতরাং, উইন্ডোটি তালিকার প্রান্তে পৌঁছে গেলে আমি যে কমান্ডগুলি ব্যবহার করি সেগুলি কাজ করা বন্ধ করে দেয়:

bind-key -n M-Left run-shell 'tmux list-windows | head -n 1 | grep -q active || tmux swap-window -t -1'
bind-key -n M-Right run-shell 'tmux list-windows | tail -n 1 | grep -q active || tmux swap-window -t +1'

এটি সহজেই বেস-ইনডেক্স এবং রেন্ডার-উইন্ডোগুলির সাথে একত্রিত হয়ে উইন্ডোগুলির একটি তালিকা তৈরি করতে পারে যা একটি স্বেচ্ছাসেবী সংখ্যা থেকে শুরু হয় এবং কখনও কোনও ফাঁক থাকে না।

আপনি যদি আমার মতো বেস-ইনডেক্স 1 ব্যবহার করছেন এবং আপনি কখনই 999 উইন্ডোর উপরে যাবেন বলে মনে করেন না, আপনি এটিকে সঠিকভাবে রোল করতে আপনি কিছু কৌশল ব্যবহার করতে পারেন, যদিও কমান্ডগুলি কিছুটা স্ফীত হয়:

set -g base-index 1
set -g renumber-windows on
bind-key -n M-Left run-shell 'if tmux list-windows | head -n 1 | grep -q active ; then tmux move-window -t 999 \; move-window -r \; refresh-client -S ; else tmux swap-window -t -1 ; fi'
bind-key -n M-Right run-shell 'if tmux list-windows | tail -n 1 | grep -q active ; then tmux move-window -t 0 \; move-window -r \; refresh-client -S ; else tmux swap-window -t +1 ; fi'

এটি সাময়িকভাবে শেষ উইন্ডোটিকে অব্যবহৃত সূচক -0 এ অস্থায়ীভাবে সরানো এবং তারপরে আবার 1 থেকে শুরু করে পুনরায় পুনর্বিবেচনার জন্য মুভ-উইন্ডো -r কল করে কাজ করে । প্রথম উইন্ডোটি শেষের দিকে যাওয়ার সময় এটি একইভাবে কাজ করে; আপনি কখনই ব্যবহার করবেন না এমন বিশাল সংখ্যা বাছাইয়ের মাধ্যমে এটি নিশ্চিত হয়ে যায় যে মুভ-উইন্ডো-আর ফায়ার করলে সমস্ত কিছু আপনার প্রত্যাশার মতো নম্বর করা হবে। আপনি যদি রিফ্রেশ-ক্লায়েন্ট-এস সম্পর্কে ভাবছেন তবে এটি প্রয়োজনীয় কারণ কখনও কখনও মুভ-উইন্ডো থেকে পুনরায় অর্ডার করা সঠিকভাবে কাজ করবে, অন্য পরিবর্তনগুলি না হওয়া পর্যন্ত স্ট্যাটাস বার আপডেট হবে না। কেবলমাত্র স্ট্যাটাস বার (-এস) এর রিফ্রেশ জোর করে, আপনি এটি এড়ান।

এই পদ্ধতির সাথে আমি খুঁজে পেতে পারি কেবলমাত্র সমস্যাটি হ'ল অদলবদল উইন্ডোটি স্বতঃস্ফূর্তভাবে তার সাথে শেষ-ব্যবহৃত উইন্ডোটিকে পরিবর্তিত করবে। সুতরাং, আপনি যদি উইন্ডো # 1 এ থাকেন তবে উইন্ডো ফোরটিতে স্যুইচ করুন এবং এটিকে আবার সরিয়ে দিন, আপনি দেখতে পাবেন যে আপনার শেষ ব্যবহৃত উইন্ডোটি # 1 এর পরিবর্তে নতুন # 4 (পূর্বে # 3)। এই কাছাকাছি উপায় আছে বলে মনে হয় না।


2

আপনি base-indexআপনার উইন্ডোগুলির জন্য প্রারম্ভিক নম্বরটি পরিবর্তন করতে ব্যবহার করতে পারেন । আপনি যদি সেট আপ base-indexকরেন 1, তারপরে move-window -rসমস্ত উইন্ডোটি পুনর্নির্মাণ করবে 1, এভাবে 0একটি উইন্ডোটিকে তার স্লটে স্থানান্তরিত করতে মুক্ত হবে :

set base-index 1
move-window -r
move-window -t 0

হয়ে গেলে, আপনার উইন্ডোটি সরিয়ে না রেখে আপনি যদি পরে ব্যবহার করতে চান তবে আপনি পুনরায় সেট base-indexকরতে 0পারেনmove-window -r0


2

tmux-pain-control প্রদান করে ctrl-b >এবং ctrl-b <ফোকাস করা উইন্ডোটি ডান এবং বাম দিকে সরানো এবং চারপাশে মোড়ানো।


Tmux 2.5 এ আমার জন্য কাজ করে না
দিমিত্রি ফ্রাঙ্ক

1
@ দিমিত্রিফ্রঙ্ক ওপস, ঠিক আছে, আমার খারাপ। এটি github.com/tmux-plugins/tmux-pain-control এর
মরিচ_চিকো

ধন্যবাদ! এই দুটি ম্যানুয়ালি সেট আপ করার জন্য পরিচালিত, তবে প্লাগইন অন্যান্য উপায়েও ভাল দেখায়।
দিমিত্রি ফ্রাঙ্ক

1

উভয় swap-window -s 5এবং swap-window -t 5উইন্ডো 5 সহ বর্তমান উইন্ডোটি অদলবদল করে, তবে বিভিন্ন শব্দার্থক দিয়ে।

swap-window -s 5

  • উইন্ডো 5 প্রোগ্রামটি বর্তমান বিজয় সংখ্যার সাথে কার্যকর হবে।
  • সাম্প্রতিক উইন্ডো নম্বর অপরিবর্তিত রয়েছে।
  • পুনরায় একই কমান্ডটি পূর্বের অবস্থায় ফিরে আসবে।

swap-window -t 5

  • 5 নম্বর দিয়ে কার্যকর প্রোগ্রাম।
  • বর্তমান উইন্ডো নম্বরে সাম্প্রতিক ওভাররাইড

numberমধ্যে swap-window -s numberএবং -t numberউভয় হতে পারে পরম , যেমন, 5, এবং আপেক্ষিক , যেমন, -1, +2।

নীচে পিএস এর tmux স্ট্যাটাসলাইন চিত্রের প্রভাবের সংক্ষিপ্তসার রয়েছেswap-window -s 5

সাম্প্রতিক:
[0] 0:vim- 1:mpl 2:py2* 3:numpy 4:plot 5:mc

এখন, পরে last-window:
[0] 0:vim* 1:mpl 2:py2- 3:numpy 4:plot 5:mc

পরে swapw -s 5:
[0] 0:mc* 1:mpl 2:py2- 3:numpy 4:plot 5:vim

অন্য swapw -s 5:
[0] 0:vim* 1:mpl 2:py2- 3:numpy 4:plot 5:mc

অন্য last-window:
[0] 0:vim- 1:mpl 2:py2* 3:numpy 4:plot 5:mc


টিএমউक्स উইন্ডোতে সীমার স্থান পরিবর্তন করতে বাশ ফাংশনের জন্য এই উত্তরটি দেখুন , যেমন, [0-6] উইন্ডোর [2-5]।
কুইজনজি

1

Tmux উইন্ডো থেকে, উইন্ডো 0 টি 1 দিয়ে অদলবদল করতে নিম্নলিখিতটি চেষ্টা করুন:

$ tmux swap-window -d -s 0 -t 1


0

আমি মনে করি আপনি 'উইন্ডো' কমান্ডটিতে একটি নতুন কী সমন্বয় বাঁধতে চান b

আমি জানি আপনি বলেছেন যে আপনি ইতিমধ্যে ম্যান পৃষ্ঠাটি পড়েছেন, তবে আপনার এটিতে আবার উল্লেখ করা উচিত। একটি বাই-কী কমান্ড যুক্ত করতে আপনাকে আপনার। / .tmux.conf ফাইলটি পরিবর্তন করতে হবে।

বিশেষত, নিম্নলিখিত পৃষ্ঠার 4 দেখুন।

tmux ম্যান পেজ


choose-windowবর্তমান উইন্ডোটি কোনও নতুন অবস্থানে নিয়ে যাচ্ছে বলে মনে হচ্ছে না।
ডান

এছাড়াও, choose-windowইতিমধ্যে আবদ্ধ C-B w
কিনান

0

এই পদ্ধতিটি আমি ব্যবহার করি। আপনি এখনও উইন্ডোটিকে কোনও অধিষ্ঠিত সূচকে স্থানান্তর করতে পারবেন না তবে আপনি একটিটিকে একটি উচ্চ (অব্যক্ত সূচক) এ স্থানান্তর করতে পারেন এবং পূর্ববর্তী সূচকটি যে ফাঁকটি ছিল সেখানে পুনরায় সাজিয়ে নিতে পারেন।

বলুন আপনার কাছে 3 টি উইন্ডোজ রয়েছে এবং আপনি চতুর্থটি যুক্ত করতে চান তবে 3 যেখানে আগে ছিল in

আপনি একটি নতুন উইন্ডো যুক্ত করার আগে: তমাক্স উপসর্গ তখন। মুভ কমান্ডটি খুলবে। 4 টাইপ করুন এবং 3 এর সূচক এখন 4 হয়ে যাবে, তারপরে কেবল অন্য উইন্ডো যুক্ত করুন এবং এটি সূচক 3 এ থাকবে এবং আপনার পুরাতন উইন্ডোটি এখনও সূচক 4 এ থাকবে।


যদিও সহায়ক টিপ, এটি প্রশ্নের উত্তর দিচ্ছে না।
জান ডগজেন

0

প্রথমে tmux কমান্ড টিপুন এবং টিপুন:

Ctrl + b 

এবং আসল উইন্ডোটি ডান উইন্ডোতে পরিবর্তিত করতে (বৃত্তাকার ক্রমে) ঠিক করুন:

}

আসল উইন্ডোটি বামে পরিবর্তন করতে:

{
  • SHIFTচাপতে }বা ব্যবহার করতে ভুলবেন না {

2
কিছু পরিস্থিতিতে অবশ্যই অবশ্যই সহায়ক, তবে এটি উইন্ডোর মধ্যে প্যানগুলি পুনরায় সাজিয়ে তোলে (উইন্ডোগুলিকে পুনরায় অর্ডার করার চেয়ে)।
স্ল্যাশ পিছনে

0

এর মূল্য কী:

আমি "স্ক্রিপ্ট" টিউআইতে সমস্ত উইন্ডো অর্ডার করতে সক্ষম হয়ে এই স্ক্রিপ্টটি একসাথে হ্যাক করেছি। এটি একটি অস্থায়ী ফাইলে আপনার সমস্ত উইন্ডো তালিকাভুক্ত করে, এটি আপনার ডিফল্ট সম্পাদক দিয়ে খোলায় (ধরে নিন যে আপনি $ সম্পাদনা সেট করেছেন)। এর পরে আপনি লাইনগুলি পুনঃক্রম করতে পারেন এবং ফাইলটি সংরক্ষণ এবং বন্ধ করার পরে উইন্ডোগুলি সেই অনুযায়ী পুনরায় সাজানো হয়। (এটি করার সময় কমিটগুলি অর্ডার দেওয়ার অনুরূপ git rebase -i)

#!/bin/bash

# Usage: tmux-mv    
#   Move your tmux windows around in an editor

tmpfile=$(mktemp)
tmux list-windows > $tmpfile
$EDITOR $tmpfile

# Move all windows to 50..x in the order you just specified
# Assumes you don't have 50 windows already(!)
cat $tmpfile | awk -F ":" '{ print " -s " $1 " -t 5" NR-1 }' |\
  xargs -I {} sh -c 'tmux move-window -d {}'

# Move them back down, retaining the order
tmux move-window -d -r
rm $tmpfile

এটি সম্ভবত উন্নত হতে পারে বিশেষত:

দ্রষ্টব্য : কমান্ডটি চালানোর পরে আপনাকে অন্য উইন্ডোতে স্থানান্তরিত করা হতে পারে।

কর্মের মধ্যে এটির একটি জিআইএফ (গিথুব)


0

এখানে উত্তরগুলির কোনওটিই আমাকে সন্তুষ্ট করেনি, তাই আমি একটি স্ক্রিপ্ট লিখেছিলাম যা (সাজানোর) screenউইন্ডোটি চলমান আচরণের নকল করে tmux

তা সনাক্ত করার গন্তব্য উইন্ডোতে সংখ্যা কিনা ছোট যে ক্ষুদ্রতম জানালা নম্বর বা বড় বড় জানালা সংখ্যার চেয়ে, এবং তাই যদি, ডানদিকে সব অন্যান্য উইন্ডোজ nudges বা বামে (যথাক্রমে) এবং পুনরায় সংখ্যার তাদের 1-এন থেকে বৃদ্ধিলাভ । move-windowকমান্ড দিয়ে এটি করা হয়।

যদি জানালা সংখ্যা মধ্যবর্তী ক্ষুদ্রতম / সবচেয়ে বড় সংখ্যা (অর্থাত, সম্ভবতঃ, কোনো বিদ্যমান উইন্ডোর সংখ্যার সাথে মেলে), এটা ঠিক তাদের বিনিময়সমূহ swap-windowকমান্ড।

লিপিটি এখানে:

#!/usr/bin/env bash
# Filename: ~/tmux-windowswap
# Function that provides improved window-swapping functionality for tmux
maxwin="$(tmux list-windows | cut -d: -f1 | sort -nr | head -n1)"
minwin="$(tmux list-windows | cut -d: -f1 | sort -n | head -n1)"
# Error checking
if [[ -z $2 ]]; then
  echo "Error: No window specified."
elif [[ ! $2 =~ ^-?[0-9]+$ ]]; then
  echo "Error: Bad window number specified."
# Bigger than everything; slide it to the far right, then renumber
elif [[ $2 -gt $maxwin ]]; then
  i=0 # intialize
  tmux move-window -t:$(($maxwin+1))
  winlist="$(tmux list-windows | cut -d: -f1 | xargs)"
  for n in $winlist; do
    i=$(($i+1)) # increment
    tmux move-window -s:$n -t:$i
  done
# Smaller than everything; slide it to the far left, then renumber
elif [[ $2 -lt $minwin ]]; then
  tmux move-window -t:0
  winlist=($(tmux list-windows | cut -d: -f1 | xargs | rev))
  i=${#winlist[@]} # initialize; start at highest indexed window
  for n in ${winlist[@]}; do
    tmux move-window -s:$n -t:$i
    i=$(($i-1)) # decrement
  done
# In-between; just a simple swap
else
  tmux swap-window -t:$2
fi

তারপরে, কেবলমাত্র এই সাধারণ কী-বাঁধাই আপনার .tmux.conf:

bind m command -p "Send window to:"  "run -b '~/tmux-windowswap #I %1'"

দ্রষ্টব্য : screenউইন্ডো-অদলবদল আচরণের পুরোপুরি অনুকরণ করার জন্য , আমি বিশ্বাস করি আপনি যখন কোনও উইন্ডোটিকে একটি বিদ্যমান উইন্ডো নম্বরে নিয়ে যান, তখন সেই উইন্ডোটির স্থানটি নেওয়া উচিত এবং অন্যান্য সমস্ত উইন্ডো ডানদিকে টান দেওয়া হয় । এটি করার জন্য এই স্ক্রিপ্টটি পরিবর্তন করা মোটামুটি সহজ।


0

কমান্ডলাইনের প্রয়োজন নেই (যা Ctrl+ bএবং তারপরে :)

কেবল আপনার উইন্ডোটিকে সাথে নিয়ে যান

Ctrl+ b+:

তারপরে নতুন (ফ্রি) উইন্ডো নম্বর প্রবেশ করুন এবং হিট করুন Enter

এখন যদি নিখরচায় উইন্ডো নম্বর থাকে তবে উইন্ডোটি পুনর্বিবেচনা করতে Ctrl+ b+ ব্যবহার করুন .

(টিপ: আপনার উইন্ডোগুলির নাম Ctrl+ b+ দিয়ে রাখুন ,যদি আপনি কোনটি থেকে সন্ধান করেন তবে)

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.