আমি কীভাবে স্ক্রিনের মতো টিএমউক্সে একটি উইন্ডোর ভিতরে প্যানগুলি দিয়ে ঘুরতে পারি?


41

আমি ভেবেছিলাম উইন্ডোতে tmux ফলকটি সরানো একই প্রশ্ন তবে এটি বলে মনে হয় না।

জিএনইউ স্ক্রিনটি নিয়মিত ব্যবহার থেকে আসা, আমি একই জিনিসগুলি করার জন্য tmux খুঁজছি। আমি নিয়মিত যে কাজগুলি করি তার মধ্যে কয়েকটি বিভিন্ন উইন্ডো খোলা থাকে, একটিতে কয়েকটি কোড ভিমে খোলা থাকে এবং কোডটি পরীক্ষা করার জন্য কয়েকটি টার্মিনাল উইন্ডো খোলা থাকে এবং কখনও কখনও অন্যান্য বিভিন্ন কাজের জন্য একটি উইন্ডো বা দুটি থাকে। আমি স্ক্রিনটি উল্লম্বভাবে বিভক্ত করেছি এবং প্রায়শই উপরের ফলকে vim উইন্ডো এবং তারপরে নীচের অংশে অন্য একটি উইন্ডো থাকবে।

প্রধান কমান্ড আমি তখন ব্যবহার হয় Ctrla, Tabফলকগুলি মধ্যে ঘোরাতে করুন এবং Ctrla, nএকটি ফলকে মধ্যে উইন্ডোগুলির মধ্যে ঘোরাতে। উদাহরণস্বরূপ, উপরের ফলকে vim সহ, আমি নীচে ফলকে স্যুইচ করি এবং তারপরে অন্যান্য টার্মিনালগুলি দিয়ে ঘুরান, আমার যা প্রয়োজন তা করেই doing পর্দা পুরো সময় বিভক্ত থাকে।

সমস্যা আমি স্ক্রিন তুলনীয় সামর্থ্য খুঁজে পাচ্ছি না হয় Ctrla, ntmux হবে। উইন্ডোজ স্যুইচিং মনে হচ্ছে একটি ফলকের অভ্যন্তরে কাজ করবে না, তবে পুরো লাফিয়ে উঠবে। যদি স্ক্রিনটি বিভক্ত হয় তবে কেবলমাত্র দুটি অপশন মনে হয় এমন কোনও উইন্ডোতে বিভক্ত নয় যা বিভক্ত নয় এবং তারপরে এটি বিভক্ত করুন বা একটি ফলকের উপ-বিভাজন করুন। আমি যা খুঁজছিলাম তা নয়।

পরামর্শ (কেবল পর্দার সাথে স্টিকিং ছাড়াও)?


আপনার পরিভাষাটি কিছুটা বিভ্রান্তিকর। ইন tmuxএকটি উইন্ডো একাধিক ভাগে বিভক্ত করা যেতে পারে। আপনি কি কি একটি উইন্ডোতে কী-বাইন্ডটি দিয়ে প্যানগুলির মধ্যে চক্র চালানোর চেষ্টা করছেন?
jasonwryan

আমি সরঞ্জামগুলির নাম অনুসরণ করার চেষ্টা করছিলাম, তবে আমি স্বীকার করি এটি বিভ্রান্তিকর। আমি জানি কিভাবে কীভাবে এক ফোকাস থেকে অন্য ফলকে ফোকাস পরিবর্তন করা যায়। আমি যা জানার চেষ্টা করছি তা হ'ল অন্য লেআউটটি পরিবর্তন না করে কীভাবে কোনও নির্দিষ্ট ফলকে প্রদর্শিত হয় তা চক্র করে নেওয়া।
FooBar

সুতরাং একটি ফলক থেকে অন্য ফলকে কন্টেন্ট সরাতে? আপনি খুঁজছেন swap-pane? আপনি যদি স্ক্রিনের অনুকরণ করতে খুঁজছেন Ctrl-a nতবে tmux সমতুল্য Ctrl-b n
জেসনওয়ারিয়ান

উত্তর:


28

tmux এবং স্ক্রিনের বিভিন্ন মডেল রয়েছে তাই সঠিক কোনও সমতুল্য নেই।

ইন পর্দা পদ, একটি বিভক্ত আপনি একই সময়ে একাধিক উইন্ডো প্রদর্শনের করতে দেয়। next( C-a n) বিভাজনের সক্রিয় অংশের মাধ্যমে উইন্ডোগুলি ঘোরান; এটি আপনাকে বিভাজনের সক্রিয় অঞ্চলের মাধ্যমে "লুকানো" উইন্ডোজ ঘোরতে দেয়।

ইন tmux পদ, একটি বিভক্ত এক বা একাধিক ফলকগুলি মধ্যে একটি উইন্ডো ভাগ করা হয়। বিভক্ত উইন্ডোর প্রতিটি অংশ একটি পৃথক ফলক, প্যানগুলি কখনই লুকানো থাকে না (যদি উইন্ডোটি নির্বাচিত হয় (দৃশ্যমান হয়) এর সমস্ত ফলকগুলিও রয়েছে), এবং একটি ফলকটি কেবল একটি উইন্ডোর একক বিভাজনে ব্যবহার করা যেতে পারে (একটি ফলক পারেন একাধিক উইন্ডোতে না থাকা এবং এটি একই উইন্ডোর একাধিক বিভাজনে থাকতে পারে না)। সেখানে একটি অভিন্ন ভাবে ঘুরে (অথবা মধ্যে) উইন্ডোজ পদক্ষেপ ফলকগুলি আদেশগুলি, কিন্তু না করতে চলেছেন nextমধ্যে পর্দা


অনুরূপ প্রভাবের ব্যবস্থা করতে আপনি নীচের মতো একটি বাঁধাই ব্যবহার করতে পারেন:

bind-key C-n swap-pane -s :+.top \; rotate-window -Ut :+

আপনি সম্ভবত এটি আপনার ~/.tmux.confফাইলে রাখতে চাইবেন তবে Prefix :এটি আপনার বর্তমান সার্ভারের উদাহরণে আবদ্ধ করার পরে এটি টাইপ / পেস্ট করতে পারেন ।

বাইন্ডিংটি ব্যবহার করতে, আপনার "মূল উইন্ডো" বাছাই করুন, এটি বিভক্ত করুন, "প্রধান উইন্ডো" এর সাথে সাথেই একটি "প্যান পাত্রে" উইন্ডোটি তৈরি করুন, তারপরে "মেন উইন্ডো" এর মধ্যে যে কোনও ফলকটি গ্রুপের মধ্যে ঘোরানোর জন্য বাঁধাইটি ব্যবহার করুন ফলক ধারক "উইন্ডো।

আপনি কীভাবে সেটআপটি তৈরি করতে পারেন তা এখানে:

  • আপনার "প্রধান উইন্ডো" হিসাবে ব্যবহার করতে একটি উইন্ডো চয়ন করুন। এটি (যেমন) Vim শুরু করুন।

  • আপনার "মূল উইন্ডো" দুটি প্যানে বিভক্ত করুন।

    যেমন Prefix "( :split-window)

    আপনি এই ফলকটিকে আপনার পরীক্ষামূলক উইন্ডো হিসাবে ব্যবহার করতে পারেন (বা লগ ভিউয়ার, বা যাই হোক না কেন)।

  • আপনার মূল উইন্ডোটির তাত্ক্ষণিক পরে একটি নতুন উইন্ডো ("ফলক ধারক") তৈরি করুন।

    যেমন Prefix c( :new-window)

    এটি গুরুত্বপূর্ণ যে "প্রধান উইন্ডো" এবং "ফলক ধারক" উইন্ডোর সূচিগুলির +মধ্যে অন্য কোনও উইন্ডো না আসে ( সীমাবদ্ধ কমান্ডগুলিতে ব্যবহৃত উইন্ডো সুনির্দিষ্টগুলির অর্থ "পরবর্তী উচ্চতর সংখ্যাযুক্ত উইন্ডো")।

  • এই উইন্ডোটি কয়েকটি প্যানে বিভক্ত করুন। তিনটি প্যানে ঘোরানোর জন্য, এই উইন্ডোটিকে দুটি প্যানে বিভক্ত করুন (তৃতীয় ফলকটি "মূল উইন্ডোতে থাকা একটি)"।

    সম্ভবত আপনার গিটের জন্য একটি শেল এবং একটি ডাটাবেস ইন্টারফেস চালানোর জন্য একটি শেল প্রয়োজন। এই "ফলক ধারক" উইন্ডোতে প্রত্যেককে একটি পৃথক ফলকে রেখে দিন।

  • আপনার "প্রধান উইন্ডো" এ ফিরে যান। আপনি যে "ফলটি ঘোরান" চান তা নির্বাচন করুন।

    প্যানগুলির মধ্যে সরানোর জন্য আপনি Prefix Up/ Down/ Left/ ব্যবহার করতে পারেন Right

  • "ফলক ধারক" উইন্ডোতে প্রথম ফলকের সাথে বর্তমান প্যানটি অদলবদল করার জন্য বাইন্ডিংটি আহ্বান করুন ("দৃশ্যের পিছনে") "ফলক ধারক" উইন্ডোর ভিতরে প্যানগুলি ঘোরান (যাতে পরের বার আপনি বাইন্ডিংটি চালান, প্রথম কমান্ড অনুক্রমের "পরবর্তী" ফলকের সাথে অদলবদল করুন)।

    Prefix Control- n(বাঁধাই সিএন ব্যবহার করে তবে আপনি এটি যা পছন্দ করতে পারেন এটি পরিবর্তন করতে পারেন)।

  • ফলকের সাহায্যে পিছনে স্ক্রোল করতে, আপনি নীচেরটি ব্যবহার করতে পারেন:

বাইন্ড-কী সিপি সোয়াপ-ফলক -s: +। নীচে \; ঘোরানো উইন্ডো -ডিটি: +

ধন্যবাদ! দুর্দান্ত ব্যাখ্যা এবং আপনার প্রস্তাবিত বাঁধাই অন্তত আমি যে কার্যকারিতাটি সন্ধান করছিলাম তার প্রতিলিপি তৈরি করতে উপস্থিত হয়।
ফুবার

মাফ করবেন, কীভাবে কোনও একটি পুরো আকারের ফলকটি আবার আগের ব্যবস্থায় ফিরে যেতে পারে
MageProspero

1
@JamesAndino: tmux 1.8 হয়েছে resize-pane -Z(ডিফল্টরূপে, প্রিফিক্স + Z আবদ্ধ) যে সাময়িকভাবে "লেন্সের রেঞ্জ" একটি ফলকে উইন্ডোর পূর্ণ আকার যাবে। 1.8 এর পূর্ববর্তী সংস্করণে এটি করার কোনও অন্তর্নির্মিত উপায় ছিল না; অন্যদের মধ্যে অন্যান্য অন্তর্নির্মিত কমান্ডগুলি থেকে স্ক্রিপ্টযুক্ত সমাধানগুলি তৈরি করা হয়েছে (উদাহরণস্বরূপ, এসএমইউ প্রশ্নের কয়েকটি উত্তর "ম্যাক্সিমাইজিং" টিএমউজের একটি ফলক )।
ক্রিস জনসেন

ty, সংকলিত এবং লোড
MageProspero

3
আমি C-b oচক্র প্যান বিশ্বাস ।
স্যাম সেলিকফ

39

আমি বিশ্বাস করি কি আপনি খুঁজছেন হয় Ctrlb+ + ( , , , )। এগুলি আপনাকে প্যানগুলির মধ্যে স্থান পরিবর্তন করতে দেবে।


2
আমি দুঃখিত, কিন্তু আমি খুব পরিষ্কার ছিল না। প্যানেল থেকে প্যানেলে কীভাবে স্থানান্তরিত করতে হবে তা আমি বের করেছি। Tmux Ctrl b + o ফাংশনগুলিতে স্ক্রিনে Ctrl a + Tab এর মতোই। আমি যা খুঁজছি তা হ'ল পর্দার Ctrl a + n এর সমতুল্য কার্যকারিতা।
ফুবার

@ ফুবার কীভাবে Ctrl-b+{বা Ctrl-b+}? এটি প্রায় কাছাকাছি হিসাবে আমি যে কার্যকারিতা খুঁজে পেতে পারেন। পেনগুলি যেমন স্ক্রিনে পরিচালিত হয় তেমনভাবে টিএমউक्सে করা হয় না।
স্পার্টিকস

আমার প্রায়শই হাইলাইট করা ফলকটি ফোকাস করতে সমস্যা হয়, বলুন আমার দুটি ফলক রয়েছে, আমি প্রায়শই টিপছি ^b↑। আমি তখন কীভাবে আসলে হাইলাইট করা ফলকে ফোকাস করব যে অন্যটি শেল দ্বারা ক্যাপচার হবে, টিএমউক্স নয়?
থারস্মমনার

6

ব্যবহার করুন bind -r, যাতে আপনি prefixএকবারে চাপতে পারেন , তারপরে আপনার ফলকটি সনাক্ত করার জন্য ক্রমযুক্ত অন্যান্য কীগুলি। সময়সীমা দ্বারা সামঞ্জস্য করা যেতে পারে repeat-time। চেকman tmux

bind -r Tab select-pane -t :.+

আপনি যদি পছন্দ করেন hjkl,

bind -r h select-pane -L
bind -r j select-pane -D
bind -r k select-pane -U
bind -r l select-pane -R

2

এখানে একটি ছোট কনফার্ট যা আপনাকে শর্টকাট ALT বা SHIFT + তীর ব্যবহার করে অ্যানোহর প্যানে বা উইন্ডোতে যেতে দেয়। কী উপসর্গটি ব্যবহার করার দরকার নেই তা বিবাদযোগ্য।

## NAVIGATION: ############################

# Switch panes 
# Usage: "ALT+arrow keys" (without prefix key)
# from https://gist.github.com/spicycode
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D

# Switch windows 
# usage: "SHIFT+arrow" (without prefix key)
bind -n S-Left  previous-window
bind -n S-Right next-window

আপনি যদি আমার চেয়ে বেশি অলস হন তবে আপনি নিম্নলিখিত কোডটি দ্বারাও আগ্রহী হতে পারেন যা মাউসের সাহায্যে প্যানগুলি নেভিগেশনের অনুমতি দেয়। (ব্যবহার: চালু করতে কী উপসর্গ + এম, এটি বন্ধ করতে এম)

## MOUSE CONTROL: #########################
set -g mode-mouse off
set -g mouse-resize-pane off
set -g mouse-select-pane off
set -g mouse-select-window off

# Toggle mouse on 
bind m \
    set -g mode-mouse on \;\
    set -g mouse-resize-pane on \;\
    set -g mouse-select-pane on \;\
    set -g mouse-select-window on \;\
    display 'Mouse: ON'

# Toggle mouse off
bind M \
    set -g mode-mouse off \;\
    set -g mouse-resize-pane off \;\
    set -g mouse-select-pane off \;\
    set -g mouse-select-window off \;\
    display 'Mouse: OFF'

এই কনফিগারেশনটি কাজ করা উচিত tmux 1.6 থেকে 1.9 এর জন্য নিশ্চিতভাবে কাজ করছে।


2

এই উত্তরগুলি আপনাকে দুটি পেন দেয়, যেখানে উভয় ফলকই উইন্ডোগুলির একই সেট ধারণ করে, তবে প্রতিটি ফলকটি স্বাধীনভাবে উইন্ডোর মধ্যে পরিবর্তন করতে পারে।

Tmux পদ্ধতিটি তিনটি সেশন ব্যবহার করতে হবে :

  • প্যানগুলির জন্য একটি বহিরাগত সেশন ,
  • উইন্ডোগুলির জন্য একটি অভ্যন্তরীণ সেশন (আপনি এটি একটি ফলক থেকে সংযুক্ত করতে পারেন),
  • অভ্যন্তরীণ সেশনে একটি গৌণ দৃষ্টিভঙ্গি (অন্য ফলকের জন্য)।

হ্যাঁ এটি ইউনিক্সের দর্শন পাগল হয়ে গেছে। চল শুরু করি:

# Create a session to hold the multiple windows
$ tmux new-session -s inner

    <Ctrl-b> c   to create a few windows, run some things

    <Ctrl-b> d   to detach, but leave it running

# Create a session to hold multiple panes (the view)
$ tmux new-session -s outer

    <Ctrl-b> "   to split

# Open the inner session in the current (bottom) pane
$ unset TMUX ; tmux attach -t inner

এখন আপনি উপরের ফলকে স্যুইচ করতে পারেন এবং যথারীতি ভিমটি খুলতে পারেন। অভ্যন্তরীণ সেশনে উইন্ডোগুলি সাইকেল চালানোর জন্য (নিম্ন ফলকটি) আপনাকে ব্যবহার করতে হবে Ctrl-b Ctrl-b nএবং p

একপাশে: এটি কিছুটা স্বাস্থ্যকর নয় তবে আপনি সর্বদা বাইরের সেশনের উপসর্গটি পরিবর্তন করতে পারেন, যেমন Ctrl-a:

<Ctrl-b> :set-option prefix C-a

তারপরে এটি কেবলমাত্র ছিল Ctrl-b nএবং pঅভ্যন্তরীণ উইন্ডোগুলি Ctrl-a oসাইকেল চালানো , এবং বাইরের অংশগুলি সাইকেল চালানো।

ঠিক আছে, উপরের ফলকে Vim খোলার পরিবর্তে আসুন আবার আপনার অভ্যন্তরীণ সেশনে সংযোগ করুন। ভিমটি প্রস্থান করুন এবং এবার একটি new-sessionকমান্ড ব্যবহার করুন (উল্লেখযোগ্যভাবে -tনয় -s):

$ tmux new-session -t inner

ভাল খবর! আপনি এখন উপরের এবং নীচের অংশে উভয় উইন্ডোতে চক্র করতে পারেন।

new-session -tআমাদের দ্বিতীয়বার ব্যবহার করার কারণটি হ'ল আমরা যদি attach -tআবার সহজভাবে করতে পারি তবে উপরের এবং নীচের অংশগুলি সমলয় করা হবে, সর্বদা একই উইন্ডো দেখায় যা আপনি চান তা নয়। এই ফলকটিকে অন্য ফলকের মতো স্বাধীনভাবে উইন্ডোগুলির মধ্য দিয়ে যেতে দিন, আমরা একটি নতুন "ভিউ" সেশন তৈরি করি তবে এর পিছনের প্রান্তটি সরাসরি বিদ্যমান সেশনের সাথে উইন্ডোজটি সংযুক্ত করে সংযুক্ত করি। এটি " গ্রুপযুক্ত সেশন " নামেও পরিচিত । (যাইহোক, সেই লিঙ্কটি [un]link-windowসেশনগুলির মধ্যে উইন্ডোজ সরাতে ব্যবহার করার পরামর্শ দেয় ))

প্রতিসাম্য জন্য অবশ্যই, আপনি tmux new-session -t innerপরিবর্তে, নীচে ফলকে চালানো যেতে পারে attach। সেক্ষেত্রে আপনি tmux এর 4 টি ইনস্ট্যান্স (সার্ভারের জন্য আরও একটি টিএমউक्स প্রক্রিয়া) চালাবেন!


0

আপনার নীচের কোডটি রাখুন .tmux.conf:

# cycle prev/next pane
bind -n S-right select-pane -t :.+
bind -n S-left select-pane -t :.-

পুনরায় লোড করুন কনফিগ, তাহলে আপনি টিপতে পারেন (সরাসরি উপসর্গ কী ছাড়া) Shift+ + ঘড়ির কাঁটার দিক চক্র ফলকগুলি, এবং Shift+ + বিপরীত দিক চক্র।

Tmux 2.8 এ পরীক্ষিত।


আপনি যদি কনফিগারটি সম্পাদনা করতে না চান তবে prefix+ + oহল ঘড়ির কাঁটার চক্রের জন্য ডিফল্ট কী বাঁধাই। আমি মাঝে মাঝে এই কী বাঁধাই করতে পেলাম, তারপরে আমি আদেশটি পেয়েছি tmux list-keysএবং এটি আমার নিজস্ব কী বাইন্ডিংয়ের জন্য ব্যবহার করি:

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